语法
data3=pd.merge(data1(left),data2(right),on=‘连接基准’,how=‘连接方式’)
data3=pd.merge(data1(left),data2(right,on=[‘连接基准1’,‘连接基准2’],how=‘连接方式’)
内连接(取交集,默认属性)
import pandas as pd
import numpy as np
data1=pd.DataFrame({'姓名':['叶问','李小龙','李连杰'],'出手次数1':np.arange(3)})
data2=pd.DataFrame({'姓名':['关于','李连杰','赵云','黄忠','李小龙'],'出手次数2':[1,2,3,4,5]})
print(data1)
print('*'*30)
print(data2)
print('-'*30)
data3=pd.merge(data1,data2,on='姓名',how='inner')#用姓名来连接 链接方式为内连接
print(data3)
左连接(以左边的表为标准来连接,第一个表)
import pandas as pd
import numpy as np
data1=pd.DataFrame({'姓名':['叶问','李小龙','李连杰'],'出手次数1':np.arange(3)})
data2=pd.DataFrame({'姓名':['关于','李连杰','赵云','黄忠','李小龙'],'出手次数2':[1,2,3,4,5]})
print(data1)
print('*'*30)
print(data2)
print('-'*30)
data3=pd.merge(data1,data2,on='姓名',how='left')#用姓名来连接 链接方式为内连接
print(data3)
右连接(以右边的表为标准)
import pandas as pd
import numpy as np
data1=pd.DataFrame({'姓名':['叶问','李小龙','李连杰'],'出手次数1':np.arange(3)})
data2=pd.DataFrame({'姓名':['关于','李连杰','赵云','黄忠','李小龙'],'出手次数2':[1,2,3,4,5]})
print(data1)
print('*'*30)
print(data2)
print('-'*30)
data3=pd.merge(data1,data2,on='姓名',how='right')#用姓名来连接 链接方式为内连接
print(data3)
外连接(将两张表粘合在一起)
import pandas as pd
import numpy as np
data1=pd.DataFrame({'姓名':['叶问','李小龙','李连杰'],'出手次数1':np.arange(3)})
data2=pd.DataFrame({'姓名':['关于','李连杰','赵云','黄忠','李小龙'],'出手次数2':[1,2,3,4,5]})
print(data1)
print('*'*30)
print(data2)
print('-'*30)
data3=pd.merge(data1,data2,on='姓名',how='outer')#用姓名来连接 链接方式为内连接
print(data3)
特殊情况
import pandas as pd
data1 = pd.DataFrame({'姓名':['张三','李四','王五','张三','李四'],'次数':range(5)})
data2 = pd.DataFrame({ '数据': [10,20]},index=['张三','李四'])
print(data1)
print('*'*30)
print(data2)
print('-'*30)
data3=pd.merge(data1,data2,left_on='姓名',right_index=True)#使用左表的姓名,右表的索引列
print(data3)