DataFrame是一个二维的有标签的数据结构,可以拥有不同类型的列。DataFrame可以被看作一张SQL表格,或者Series的字典。
与Series相似,DataFrame可以接受不同种类的输入:
· 一维数组、dict、list或者Series的dcit
· 二维的numpy.ndarray
· 结构化的数组
· Series
· 另一个DataFrame
在输入数据的同时,也可以选择性地输入行和列的标签作为参数。
如果轴坐标没有被输入,则会根据公共规则被自动创建。
根据dict或者Series的字典创建DataFrame:
行和列可以通过index和column属性进行访问:
通过ndarrays / lists的字典创建DataFrame:
所有数组的大小必须相同;如果输入了索引,索引数量必须和数组数量相同。如果没输入索引,则会自动生成range(n)的索引。
通过结构化或者记录数组创建DataFrame:
通过存储dict的list创建DataFrame:
DataFrame.from_dict:
DataFrame.from_dict可以接收dict的字典或者类似数组的数列字典来构建DataFrame。可以通过输入orient='index',来将dict中的key当做行坐标。
DataFrame.from_records:
通过from_records创建的DataFrame可以使用特殊数据类型的index
列的查找、增加和删除:
对于DataFrame的列的操作与对dict中的元素操作相似:
如果写入了一个标量,则会自动用此值补全整行;如果写入了一个Series,但其长度与DataFrame不同,则系统会自动调整Series的长度并将其装入DataFrame中。
通过dataframe.insert()函数可以在指定位置插入一列。例如,如下命令可在第二列插入一列数据,行名为‘’bar‘’,数据为df['one']:
使用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属性可以进行转置操作:
矩阵乘法:
利用dot方法进行矩阵间的乘运算:df1.dot(df2)
元素展示:
通过df.info()方法,可以查看所有列的信息
pd.set_option('display.width',arg) 可以设置数据展示宽度,默认值是80
pd.set_option('display.max_colwidth',arg) 可以设置行的展示宽度,不足部分用...替代
reindex:
reindex方法允许你在特定的轴上对索引进行增删改,并将结果作为副本返回:
reset_index:
reset_index方法可以将当前的index作为dataframe的一列,并重新创建一个index: