import pandas as pd
left =pd.DataFrame({ ‘A‘:[‘A0‘,‘A1‘,‘A2‘,‘A3‘],
‘B‘:[‘B0‘,‘B1‘,‘B2‘,‘B3‘],
‘key‘:[‘K0‘,‘K1‘,‘K2‘,‘K3‘],})
right =pd.DataFrame({ ‘C‘:[‘C0‘,‘C1‘,‘C2‘,‘C3‘],
‘D‘:[‘D0‘,‘D1‘,‘D2‘,‘D3‘],
‘key‘:[‘K0‘,‘K1‘,‘K2‘,‘K3‘],})
left
right
merge:合并
pd.merge(left,right)#直接合并,重复的就不再显示
pd.merge(left,right,on=‘key‘)#以key为界进行合并
left =pd.DataFrame({ ‘A‘:[‘A0‘,‘A1‘,‘A2‘,‘A3‘],
‘B‘:[‘B0‘,‘B1‘,‘B2‘,‘B3‘],
‘key1‘:[‘K0‘,‘K1‘,‘K2‘,‘K3‘],
‘key2‘:[‘K0‘,‘K1‘,‘K2‘,‘K3‘]})
right =pd.DataFrame({ ‘C‘:[‘C0‘,‘C1‘,‘C2‘,‘C3‘],
‘D‘:[‘D0‘,‘D1‘,‘D2‘,‘D3‘],
‘key1‘:[‘K0‘,‘K1‘,‘K2‘,‘K3‘],
‘key2‘:[‘K0‘,‘K1‘,‘K2‘,‘K3‘]})
left
right
pd.merge(left,right)#直接合并,重复的就不再显示
pd.merge(left,right,on=‘key1‘)#以key1为界进行合并,key2自动分组
pd.merge(left,right,on=[‘key1‘,‘key2‘])#以key1,key2为界进行合并
使key2的值不完全一样,right改成K4
right =pd.DataFrame({ ‘C‘:[‘C0‘,‘C1‘,‘C2‘,‘C3‘],
‘D‘:[‘D0‘,‘D1‘,‘D2‘,‘D3‘],
‘key1‘:[‘K0‘,‘K1‘,‘K2‘,‘K3‘],
‘key2‘:[‘K0‘,‘K1‘,‘K2‘,‘K4‘]})
pd.merge(left,right,on=[‘key1‘,‘key2‘])#以key1,key2为界进行合并,但是key2不同的那一行就被删除
pd.merge(left,right,on=[‘key1‘,‘key2‘],how=‘outer‘)#how=‘outer‘为并集,但是默认是交集
pd.merge(left,right,on=[‘key1‘,‘key2‘],how=‘outer‘,indicator=True)#指定当前的merge是交集还是并集
pd.merge(left,right,on=[‘key1‘,‘key2‘],how=‘left‘)#how=‘left‘指定以left为基准,也可以指定其他为基准
原文:https://www.cnblogs.com/AI-robort/p/11636763.html