標籤:RKE 1.0 字串 指定 and 並集 個數 資料 對象
1、合并資料集
①、多對一合并
我們需要用到pandas中的merge函數,merge函數預設情況下合并的是兩個資料集的交集(inner串連),當然還有其他的參數:
how裡面有inner、outer、left、right,四個參數可以選擇,分別代表:交集,並集,參與合并的左側DataFrame,以及右側
當列名對象相同時:df1=pd.DataFrame({‘key‘:[‘a‘,‘c‘,‘a‘,‘b‘,‘a‘,‘c‘,‘b‘,‘c‘],‘data1‘:range(8)})df2=pd.DataFrame({‘key‘:[‘a‘,‘b‘,‘d‘],‘data2‘:range(3)})pd.merge(df1,df2,on=‘key‘)返回 key data1 data20 a 0 01 a 2 02 a 4 03 b 3 14 b 6 1當列名對象不同時:df1=pd.DataFrame({‘lkey‘:[‘a‘,‘c‘,‘a‘,‘b‘,‘a‘,‘c‘,‘b‘,‘c‘],‘data1‘:range(8)})df2=pd.DataFrame({‘rkey‘:[‘a‘,‘b‘,‘d‘],‘data2‘:range(3)})pd.merge(df1,df2,left_on=‘lkey‘,right_on=‘rkey‘,how=‘outer’)返回為 lkey data1 rkey data20 a 0.0 a 0.01 a 2.0 a 0.02 a 4.0 a 0.03 c 1.0 NaN NaN4 c 5.0 NaN NaN5 c 7.0 NaN NaN6 b 3.0 b 1.07 b 6.0 b 1.08 NaN NaN d 2.0
②、多對多合并
df1=pd.DataFrame({‘key‘:[‘b‘,‘c‘,‘b‘,‘a‘,‘b‘,‘a‘],‘data1‘:range(6)})df2=pd.DataFrame({‘key‘:[‘a‘,‘a‘,‘c‘,‘b‘,‘d‘],‘data2‘:range(5)})pd.merge(df1,df2,on=‘key‘,how=‘right‘)返回為 key data1 data20 b 0.0 31 b 2.0 32 b 4.0 33 c 1.0 24 a 3.0 05 a 5.0 06 a 3.0 17 a 5.0 18 d NaN 4
多對多合并產生的是行的笛卡爾積,即df1有2個a,df2有2個a,並集會產生4個a
當需要根據多個鍵進行合并時,只要傳入一個列名組成的列表就可以。
在合并運算時,需要對重複列名的處理,suffixes函數可以指定附加到左右兩個DataFrame對象的重複列名上的字串
2、索引上的合并
利用Python進行資料分析---資料規整化