合并数据
pd.merge()是顶级的类方法,实例对象没有该方法,此函数是针对DataFrame对象。
与pd.concat()的最大区别,pd.concat()依据index/columns在轴方向罗列,pd.merge()依据具体数据连接。
| 参数 | 类型 | 说明 |
| left/right | DataFrame | 进行合并的两个DataFrame对象 |
| how |
inner outer left right |
inner 默认值 inner 两个DataFrame对象的交集 outer 两个DataFrame对象的并集 left 以 ldf 为主体,rdf不足数据用Nan填充,求两个DataFrame对象的并集(ldf的数据肯定没有Nan) right 以 rdf 为主体,ldf不足数据用Nan填充,求两个DataFrame对象的并集(rdf的数据肯定没有Nan) |
| on |
字符串 列表 |
设置 key 的方式1 Key是columns,在两个DataFrame对象中有相同的columns(列标签),需要用on指明哪个列作为key (当两个DataFrame对象有相同的columns(列标签)时,且以其中的某个column或是某几个column为key) pd.merge(ldf,rdf,on=‘key1’) pd.merge(ldf,rdf,on=['key1','key2']) pd.merge(ldf,rdf,on=None) 以两个DataFrame对象的列标签的交集为key |
|
left_on/ right_on |
字符串 列表 类数组 |
设置 key 的方式2 Key是columns,在两个DataFrame对象中没有相同的columns(列标签),需要用left_on和right_on指明哪个列成为key pd.merge(ldf,rdf,left_on='key1',rihgt_on='data1') pd.merge(ldf,rdf,left_on=['key1','key2'],right_on=['data1','data2']) |
|
left_index/ right_index | bool |
设置 key 的方式3 Fales 默认值 Key是index,需要用left_index和right_index指明 pd.merge(ldf,rdf,left_index=True,right_index=True) |
|
设置key的方式4 混合使用 pd.merge(ldf,rdf,left_index=True,right_on='data1') | ||
| indicator |
bool 字符串 |
False 默认值 返回的DataFrame对象中,增加一列‘_merge’,注明每行数据的来源 |
ldf
grade ldata
0 a 0
1 b 1
2 c 2
3 d 3
rdf
grade rdata
0 a 30
1 b 40
2 c 50
3 e 60
pd.merge(ldf,rdf)
grade ldata rdata
0 a 0 30
1 b 1 40
2 c 2 50
pd.merge(ldf,rdf,how='left')
grade ldata rdata
0 a 0 30.0
1 b 1 40.0
2 c 2 50.0
3 d 3 NaN
pd.merge(ldf,rdf,how='right')
grade ldata rdata
0 a 0.0 30
1 b 1.0 40
2 c 2.0 50
3 e NaN 60
pd.merge(ldf,rdf,how='outer')
grade ldata rdata
0 a 0.0 30.0
1 b 1.0 40.0
2 c 2.0 50.0
3 d 3.0 NaN
4 e NaN 60.0
本文探讨Pandas库中的merge函数,它是用于整合DataFrame对象的关键工具,与concat函数不同,merge通过数据本身进行连接,而非依据索引或列。详细解析了如何使用pd.merge()进行数据合并。
1403

被折叠的 条评论
为什么被折叠?



