Pandas是用来生成可视化表格,并且对表格进行运算的。可以将numpy的数据进行生成表格。在学习Q-Learning的时候需要使用该工具,可以简化表格的更新过程。并且提供比较规整的可视化数据,也可以进一步的保存表格。
生成API
- pd.Series() => 传入数组,生成列表
- pd.date_range('20160101',periods=6) => 生成时间列表
- pd.DataFrame(np.random.randn(row_num, column_num),index=[], columns=[]) => 将numpy生成的shape数据格式化row和columns都有意义的表格。index是每行名称,column是每列的名称。
- a.dtypes => 打印出每列的格式
- a.index => 输出行序号
- a.columns => 输出列序号
- a.values => 输出所有值
- a.decribe => 可以输出每列的属性
- a.T => 转置矩阵
- a.sort_index(axis = 1, acending=False) => 对列名称进行排序,倒序
- a.sort_values(by='E') => 对哪一列的值进行排序
- a.pop(column_name) => 弹出一列
- a.insert(index, column_name, column_data) => column_data是Series类型的数据,可以通过np来生成,Series(np_array)
索引API
- a[column_name] => 输出column_name列的元素,也可以直接加入新行
- a[min:max] => 输出[min, max)之间的元素,可以是行也可以是列
- a.loc[label] => 根据label进行选择行,只能根据标签筛选
- a.loc[:,[label1,label2]] => 所有的行,对列进行筛选
- a.iloc[index_min:index_max, column_min:column_max] => 支持切片、和直接筛选,是索引的筛选
- a.ix[index_num, label] => 进行行和列的索引和标签混合筛选
- b[a.column>8] => 对于b表筛选,输出a.column>8的所有元素,或者是对b.column进行筛选
- pd.get_dummies(a, prefix = 'a') => 直接生成one-hot向量
处理丢失数据
- a.dropna(axis=0,how='any') => 任何一个包含nan元素的行会被丢弃how = {'any','all'}
- a.fillna(value=0) => 用0去填充nan元素
- a.isnull() => 检查是否有缺失数据,返回BOOL值的表格,np.any(a.isnull()==True),这样式输出一个BOOL值,方便看
处理文件
- a.read_csv() => 读取csv文件,excel表格
- a.to_pickle() => 保存成pickle文件
合并表格
- a.concat([df1,df2,df3], axis=0, ignore_index=True) => 0是竖直方向,1是横方向,上下合并,忽略之前的index
- a.concat([df1,df2,df3], axis=1, join=inner/outer) => 用来处理index和label名称不一样的情况,inner保留交集,outer保留并集,没有的元素用NAN来填充,
- a.concat([df1,df2,df3], axis=1, join_axis=[df1.index]) => 左右合并的时候,处理交集
- df1.append([df2, df3]) => 将df2和df3合并到df1,
- df.append(series) => 可以直接添加一行