Pandas中的数据结构(2):DataFrame

2018-05-29  本文已影响0人  形式主义_5adc

DataFrame是一个二维的有标签的数据结构,可以拥有不同类型的列。DataFrame可以被看作一张SQL表格,或者Series的字典。

与Series相似,DataFrame可以接受不同种类的输入:

    · 一维数组、dict、list或者Series的dcit

    · 二维的numpy.ndarray

    · 结构化的数组

    · Series

    · 另一个DataFrame

在输入数据的同时,也可以选择性地输入行和列的标签作为参数。

如果轴坐标没有被输入,则会根据公共规则被自动创建。

根据dict或者Series的字典创建DataFrame:

根据Series的字典创建 根据dict创建

行和列可以通过index和column属性进行访问:

访问行列

通过ndarrays / lists的字典创建DataFrame:

所有数组的大小必须相同;如果输入了索引,索引数量必须和数组数量相同。如果没输入索引,则会自动生成range(n)的索引。

通过结构化或者记录数组创建DataFrame:

创建DataFrame 修改行和列的值

通过存储dict的list创建DataFrame:

DataFrame.from_dict:

DataFrame.from_dict可以接收dict的字典或者类似数组的数列字典来构建DataFrame。可以通过输入orient='index',来将dict中的key当做行坐标。

key为列名

DataFrame.from_records:

通过from_records创建的DataFrame可以使用特殊数据类型的index

指定特殊的index

列的查找、增加和删除:

对于DataFrame的列的操作与对dict中的元素操作相似:

列的查找、运算和增加 列的删除

如果写入了一个标量,则会自动用此值补全整行;如果写入了一个Series,但其长度与DataFrame不同,则系统会自动调整Series的长度并将其装入DataFrame中。

写入值的自适应

通过dataframe.insert()函数可以在指定位置插入一列。例如,如下命令可在第二列插入一列数据,行名为‘’bar‘’,数据为df['one']:

行的插入

使用assign()函数可以轻松地根据已有的行建立新的行,并且assign()函数只返回数据的副本,而不会影响原数据:

assign()创建新行

行的查找:

根据标签查找行:df.loc[label]        返回结果:Series

根据行的位置查找行:df.iloc[int]           返回结果:Series

行切片: df[5:10]          返回结果:DataFrame

根据判断条件选择行:df[bool_vec]           返回结果:DataFrame

行的查找

通过索引查找特定位置的数据:

df.at[index,column]

或 df.col[index,column]

通过行列数字查找特定位置的数据:

df.icol[row,col]

转置:

利用DataFrame的T属性可以进行转置操作:

DataFrame的转置

矩阵乘法:

利用dot方法进行矩阵间的乘运算:df1.dot(df2)

元素展示:

通过df.info()方法,可以查看所有列的信息

pd.set_option('display.width',arg)  可以设置数据展示宽度,默认值是80

pd.set_option('display.max_colwidth',arg) 可以设置行的展示宽度,不足部分用...替代

reindex:

reindex方法允许你在特定的轴上对索引进行增删改,并将结果作为副本返回:

reindex修改索引

reset_index:

reset_index方法可以将当前的index作为dataframe的一列,并重新创建一个index:

上一篇下一篇

猜你喜欢

热点阅读