1. 程式人生 > 實用技巧 >用python進行表格的連線

用python進行表格的連線

1.merge()函式

#若未指定在哪一列上進行連線,則自動將重疊列名作為連線的鍵,指定鍵,用on=''
# print(pd.merge(df1,df2,on='key'))#innerjoin,交集
# print(pd.merge(df1,df2,how='outer'))#聯合了左連線和右連線的效果,是並集
# print(pd.merge(df1,df2,how='left'))#相當於left join,若左邊值唯一,右邊值是兩個,則會顯示兩個重複的值


#若列名不同,則可分別指定列名
# df3=pd.DataFrame({'lkey':['b','b','a','c','a','a','b'],'data1':range(7)})
# df4=pd.DataFrame({'rkey':['a','b','d'],'data2':range(3)}) # print(pd.merge(df3,df4,left_on='lkey',right_on='rkey')) df1=pd.DataFrame({'key1':['b','b','a','c','a','b'],'data1':range(6)}) df2=pd.DataFrame({'key2':['a','b','a','b','d'],'data2':range(5)}) #merge()函式進行多對多連線,結果為行的笛卡爾積,列如左邊的df1有三個b,右邊的df2有兩個b,則昨連線後有6個b。
print(pd.merge(df1,df2,left_on='key1',right_on='key2',how='left')) #使用多個鍵進行合併時,傳入一個列名的列表 on=['key1','key2'] left=pd.DataFrame({'key1':['foo','foo','bar'],'key2':['one','one','two'],'lval':[1,2,3]}) right=pd.DataFrame({'key1':['foo','foo','bar','bar'],'key2':['one','one','one','two'],'rval':[4,5,6,7]})
print(pd.merge(left,right,on=['key1','key2'],how='outer')) #連接合並後處理重疊列名,使用merge函式的suffixes引數 print(pd.merge(left,right,on='key1',suffixes=('_a','_b')))
View Code