Pandas_规整数据_合并数据_merge

本文探讨Pandas库中的merge函数,它是用于整合DataFrame对象的关键工具,与concat函数不同,merge通过数据本身进行连接,而非依据索引或列。详细解析了如何使用pd.merge()进行数据合并。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

合并数据

pd.merge()是顶级的类方法,实例对象没有该方法,此函数是针对DataFrame对象。

与pd.concat()的最大区别,pd.concat()依据index/columns在轴方向罗列,pd.merge()依据具体数据连接。

参数类型说明
left/rightDataFrame进行合并的两个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

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值