![PYTHON數據框操作](http://p2.ttnews.xyz/loading.gif)
![PYTHON數據框操作](http://p2.ttnews.xyz/loading.gif)
數據框是frame,首先reset_index(drop=True),會將index刪除,但frame本身默認不會變化,,reset_index參數inplace默認為False.當reset_index(drop=False)時index會被還原為1列。
首先我們刪除了index列,加上axis=1,刪除全列,inplace=True,frame就地改變。
改變索引,還原為之前frame.index=['three','one'],frame索引變化。此時,frame.reset_index(drop=True,inplace=True)這一步先將index 刪除,就地改變,索引還原默認0,1.2………….N。
更改局部index 和列名:object.rename(index/columns={' ': ' '})
frame.rename(columns={'d':'m'},inplace=True)
Pandas之set_index()
將c,d列設置為index。
frame.set_index(['c','d'],drop=False),drop設置為false,原來的列不被丟失。
利用reset_index()原來index被還原為列。
數據框的合併pd.merge()
Pd.merge()合併是去相同的列,默認為how='inner',可以發現這列的c,d不見了。
pd.merge(df3,df4,left_on='lkey',right_on='rkey')在數據框合併是左邊使用列lkey,右邊使用列rkey,默認是inner,得到的結果rkey,lkey都在結果出現,兩個列是相等的。
How='left','right','inner','outer'等選擇。
pd.merge(left1,right1,left_on='key',right_index=True)左側數據用列,右側數據用索引,how默認inner
pd.merge(lefth,righth,left_on=['key1','key2'],right_index=True),左側數據用兩列進行合併。
Df.join(),數據框的合併
np.concatenate(),
np.concatenate([arr,arr],axis=0)用於數組的合併,axis=0行與行的對接,axis=1列與列的對接。默認axis=0
Pd.concat()
pd.concat([obj1,obj2], axis=0/1),將合併對象放入[]中傳入對象參數,axis默認是0,行與行的對接,join默認outer,與pd.merge()不同,這裡參數是join
Pd.merge(),key參數會根據axis=0/1,x新建index名或者column名,第一重索引,具體見【50】
Unstack()與stack()
Unstack()會將series還原為dataframe,stack()將dataframe變成series
Series對象的unique,value_counts()
ddd
數據框的unstack(),二重columns為列,也可指定是index name
Df.melt()
df.melt('key')將key作為變量的其餘變量作為var的值,對應值為value的值
pivot()是其逆操作。
Pd.melt()也可以將變量值先限制為某一些,【A,B,原變量】,同樣可以不指定id變量,直接傳入變量值【A,B,C】
閱讀更多 洛鴻0920 的文章