您的位置:首页 > 其它

Pandas_规整数据_合并数据_merge

2018-11-21 17:31 190 查看
版权声明:学习笔记,请君任意享用,如有错误,敬请指正。(小白就是小白,不怕出错。) https://blog.csdn.net/mingkoukou/article/details/82800066

合并数据

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’,注明每行数据的来源

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[code]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

 

 

 

 

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: