pandas——Dataframe的多种创建方式

理解Dataframe

Dataframe是pandas中的一种数据结构,表示二维矩阵的数据表,区别于列表和字典这种一维的结构。二维具体表示为行和列,类似于sql中表的格式(或者简单理解为类似于excel中的一张表),每一列可储存不同的数据类型,比如字符型、数值型、布尔型或者object类型。

创建Dataframe

  1. 从字典中创建

import pandas as pd
d = {'广东':['广州','深圳'], '福建':['福州', '厦门']}
df = pd.DataFrame(d)

​注:

使用第一种方法一般需要字典的值为列表,如果是

d = {'广东':23, '福建':8, '江苏':13} 
df = pd.DataFrame(d)

会报错:ValueError: If using all scalar values, you must pass an index,意思是需要确定并传入索引index。

  • 解决办法一可以根据想要表达的意思传入索引:

  • d = {'广东':23, '福建':8, '江苏':13} 
    df = pd.DataFrame(d, index=[0])

    ​传入几个索引,DataFrame就会有几行,不过在这里每一行都是相同的:

    d = {'广东':23, '福建':8, '江苏':13} 
    df = pd.DataFrame(d, index=[0,1,2])

  • 解决办法二也可以使用list(d.items()):

  • list(d.items())的得到的结果是这样的,将字典转化为一对对键值对:

    [('广东', 23), ('福建', 8), ('江苏', 13)]

    传入Dataframe:

    d = {'广东':23, '福建':8, '江苏':13} 
    df = pd.DataFrame(list(d.items()))

    这样更接近我想要的结果

    这时可以给Dataframe的列命名,相当于原来字典的key为一列,value为一列

    d = {'广东':23, '福建':8, '江苏':13} 
    df = pd.DataFrame(list(d.items()), columns=['省', '地级市'])

  • 解决办法三使用DataFrame.from_dict()

  • d = {'广东':23, '福建':8, '江苏':13} 
    df = pd.DataFrame.from_dict(d, orient='index')

    2. 从numpy ndarray创建

    df = pd.DataFrame(np.array([['广州', '厦门', '乌鲁木齐'], 
                                ['深圳', '福州', '喀什'], 
                                ['汕头', '泉州', '石河子']]), 
                        columns=['广东', '福建', '新疆'])

    ​np.array与dict构造DataFrame不一样,array里面每一个list长度必须一样,代表DataFrame每一行,类似于sql insert插入表,值顺序对应好列名。

    3. 使用pd.read_csv等读取csv文件创建,或者pd.read_excel等


    参考链接:https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html?highlight=dataframe#pandas.DataFrame

    物联沃分享整理
    物联沃-IOTWORD物联网 » pandas——Dataframe的多种创建方式

    发表评论