Python之pandas学习【7】:合并两个pandas(merge)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_36499794/article/details/102738257

注意看代码注释和运行结果,自己运行一遍最好

一. 代码

import numpy as np
import pandas as pd

left = pd.DataFrame({'key':['K0','K1','K2','K3'],'A':['A0','A1','A2','A3'],'B':['B0','B1','B2','B3']})
right = pd.DataFrame({'key':['K0','K1','K2','K3'],'C':['C0','C1','C2','C3'],'D':['D0','D1','D2','D3']})
print(left,'\n')
print(right,'\n')
res = pd.merge(left,right,on='key') # 也就是key这个列只会出现一次,横向的合并
print(res,'\n')


# how = ['left','right','outer','inner'] right就是基于right的来合并,left一样
left = pd.DataFrame({'key1':['K0','K0','K2','K3'],'key2':['K0','K1','K0','K1'],'A':['A0','A1','A2','A3'],'B':['B0','B1','B2','B3']})
right = pd.DataFrame({'key1':['K0','K1','K1','K2'],'key2':['K0','K0','K0','K0'],'C':['C0','C1','C2','C3'],'D':['D0','D1','D2','D3']})
print(left,'\n')
print(right,'\n')
res = pd.merge(left,right,on=['key1','key2']) # key1,key2都会考虑,但是两个key必须一模一样,默认inner方法
print(res,'\n')
res = pd.merge(left,right,on=['key1','key2'],how='outer') # 不管key一不一样,都合并
print(res,'\n')


# left index and right index:['outer','inner','left','right']
res = pd.merge(left,right,left_index=True,right_index=True,how='outer')


# handle overlapping
boys = pd.DataFrame({'k':['k0','k1','k2'],'age':[1,2,3]})
girls = pd.DataFrame({'k':['k0','k0','k3'],'age':[4,5,6]})
print(boys,'\n')
print(girls,'\n')
res = pd.merge(boys,girls,on='k',suffixes=['_boy','_girl'],how='inner') #默认就是inner,on 和  how其实是连起来用的
print(res,'\n')
res = pd.merge(boys,girls,on='k',suffixes=['_boy','_girl'],how='outer')
print(res)

二. 运行结果

猜你喜欢

转载自blog.csdn.net/qq_36499794/article/details/102738257