merge()主要参数使用--配合excel实例应用

本文介绍了Python pandas库的merge函数,通过参数说明和具体实例,详细讲解了如何利用merge合并Excel数据。示例中展示了如何处理重复列名,并通过内连接方式将两个Excel文件的数据依据共同属性'a'进行整合,生成新的Excel文档。

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

一、参数、简例
1) merge 函数参数

参数说明
left参与合并的左侧DataFrame
right参与合并的右侧DataFrame
how连接方式:‘inner’(默认);还有,‘outer’、‘left’、‘right’
on用于连接的列名,必须同时存在于左右两个DataFrame对象中,如果位指定,则以left和right列名的交集作为连接键
left_on左侧DataFarme中用作连接键的列
right_on右侧DataFarme中用作连接键的列
left_index将左侧的行索引用作其连接键
right_index将右侧的行索引用作其连接键
sort根据连接键对合并后的数据进行排序,默认为True。有时在处理大数据集时,禁用该选项可获得更好的性能
suffixes字符串值元组,用于追加到重叠列名的末尾,默认为(‘_x’,‘_y’).例如,左右两个DataFrame对象都有‘data’,则结果中就会出现‘data_x’,‘data_y’
copy设置为False,可以在某些特殊情况下避免将数据复制到结果数据结构中。默认总是赋值

2)简例:
left = pd.DataFrame({‘key1’:[‘foo’,‘foo’,‘bar’],‘key2’:[‘one’,‘one’,‘two’],‘lval’:[1,2,3]})
right = pd.DataFrame({‘key1’:[‘foo’,‘foo’,‘bar’,‘bar’],‘key2’:[‘one’,‘one’,‘one’,‘two’],‘rval’:[4,5,6,7]})
执行结果见图:在这里插入图片描述
pd.merge(left,right,on = [‘key1’,‘key2’],how = ‘outer’)合并结果见下图:
连接键值为多个时执行结果为笛卡儿积形式
3)对连接表中非连接列的重复列名的处理:
pd.merge(left,right,on = ‘key1’)
在这里插入图片描述
pd.merge(left,right,on = ‘key1’,suffixes = (’_left’,’_right’)),再添加 suffixes参数结果如图:
宿舍
二:实例应用:
step1:
分别读取需要合并excel文件,本次案例合并两个文档数据(针对excel只存一个表单情况,若有多个加入sheet_name参数即可)
f1=pd.read_excel(r’C:\Users\user\Desktop\prac.xlsx’)
f2=pd.read_excel(r’C:\Users\user\Desktop\prac1.xlsx’)
df1=pd.DataFrame(f1)
df2=pd.DataFrame(f2)
ps:路径根据自身实际改动即可。
f1数据样本如图:
在这里插入图片描述
f2数据样本如图:
在这里插入图片描述
step2:
对两个文档数据进行合并
result=pd.merge(df1,df2,on=[‘a’],how=‘inner’,suffixes=(’_df1’,’_df2’))
本次我合并是以两个文档a属性作为关联标识,又由于两张表中均存在d属性因此以suffixes属性将其区分,最终求交集得出最终结果如图下:
在这里插入图片描述
由此可知两张表中a关联中以two为两张表中共有属性,同时d属性因在两种表中均存在,因此提前以suffixes做好区分。
step3:
将该数据另存为新的excel文档
mergef=result.to_excel(r’C:\Users\user\Desktop\关联结果.xlsx’,sheet_name=‘关联结果’)
打开保存好的文档数据如图:
在这里插入图片描述
完整代码如下:

f1=pd.read_excel(r'C:\Users\user\Desktop\prac.xlsx',sheet=0)
f2=pd.read_excel(r'C:\Users\user\Desktop\prac1.xlsx',sheetname=0)
df1=pd.DataFrame(f1)
df2=pd.DataFrame(f2)
result=pd.merge(df1,df2,on=['a'],how='inner',suffixes=('_df1','_df2'))
mergef=result.to_excel(r'C:\Users\user\Desktop\关联结果.xls',sheet_name='关联结果')

注:以最简案例根据自身需求加入相关条件可实现日常需要关联的大批量数据文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值