Pandas是用來(lái)生成可視化表格屹培,并且對(duì)表格進(jìn)行運(yùn)算的据德『粒可以將numpy的數(shù)據(jù)進(jìn)行生成表格棍辕。在學(xué)習(xí)Q-Learning的時(shí)候需要使用該工具版仔,可以簡(jiǎn)化表格的更新過(guò)程誊锭。并且提供比較規(guī)整的可視化數(shù)據(jù)馒吴,也可以進(jìn)一步的保存表格寺晌。
生成API
- pd.Series() => 傳入數(shù)組俭厚,生成列表
- pd.date_range('20160101',periods=6) => 生成時(shí)間列表
- pd.DataFrame(np.random.randn(row_num, column_num),index=[], columns=[]) => 將numpy生成的shape數(shù)據(jù)格式化row和columns都有意義的表格户魏。index是每行名稱,column是每列的名稱挪挤。
- a.dtypes => 打印出每列的格式
- a.index => 輸出行序號(hào)
- a.columns => 輸出列序號(hào)
- a.values => 輸出所有值
- a.decribe => 可以輸出每列的屬性
- a.T => 轉(zhuǎn)置矩陣
- a.sort_index(axis = 1, acending=False) => 對(duì)列名稱進(jìn)行排序叼丑,倒序
- a.sort_values(by='E') => 對(duì)哪一列的值進(jìn)行排序
- a.pop(column_name) => 彈出一列
- a.insert(index, column_name, column_data) => column_data是Series類(lèi)型的數(shù)據(jù),可以通過(guò)np來(lái)生成扛门,Series(np_array)
索引API
- a[column_name] => 輸出column_name列的元素幢码,也可以直接加入新行
- a[min:max] => 輸出[min, max)之間的元素,可以是行也可以是列
- a.loc[label] => 根據(jù)label進(jìn)行選擇行,只能根據(jù)標(biāo)簽篩選
- a.loc[:,[label1,label2]] => 所有的行尖飞,對(duì)列進(jìn)行篩選
- a.iloc[index_min:index_max, column_min:column_max] => 支持切片症副、和直接篩選,是索引的篩選
- a.ix[index_num, label] => 進(jìn)行行和列的索引和標(biāo)簽混合篩選
- b[a.column>8] => 對(duì)于b表篩選政基,輸出a.column>8的所有元素贞铣,或者是對(duì)b.column進(jìn)行篩選
- pd.get_dummies(a, prefix = 'a') => 直接生成one-hot向量
處理丟失數(shù)據(jù)
- a.dropna(axis=0,how='any') => 任何一個(gè)包含nan元素的行會(huì)被丟棄how = {'any','all'}
- a.fillna(value=0) => 用0去填充nan元素
- a.isnull() => 檢查是否有缺失數(shù)據(jù),返回BOOL值的表格,np.any(a.isnull()==True),這樣式輸出一個(gè)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) => 用來(lái)處理index和label名稱不一樣的情況,inner保留交集酱畅,outer保留并集琳袄,沒(méi)有的元素用NAN來(lái)填充,
- a.concat([df1,df2,df3], axis=1, join_axis=[df1.index]) => 左右合并的時(shí)候,處理交集
- df1.append([df2, df3]) => 將df2和df3合并到df1纺酸,
- df.append(series) => 可以直接添加一行