Pandas merge()函数:参数详解与连接类型实战

慢慢来
慢慢来
发布时间:2026-10-15| 5人浏览过
原创

本文深入解析Pandas中merge()函数的核心用法,涵盖inner、outer、left、right四种连接模式。详细讲解how、on、left_on、right_on、suffixes等关键参数的配置方法,并通过具体代码示例演示如何处理多列匹配、索引连接及重复列后缀处理,帮助开发者高效实现数据集合并。

一、merge函数用途

在Pandas库中,merge()函数扮演着类似SQL中JOIN语句的角色,它能够依据指定的字段或属性,将两个不同的数据集进行合并,最终生成一个新的数据框对象。

二、merge()函数的具体参数

其基本调用语法如下:


DataFrame1.merge(DataFrame2, how=‘inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', ‘_y'))

各参数详细说明如下:

参数 说明
how 默认为inner,可设为inner/outer/left/right
on 根据某个字段进行连接,必须存在于两个DateFrame中(若未同时存在,则需要分别使用left_on和right_on来设置)
left_on 左连接,以DataFrame1中用作连接键的列
right_on 右连接,以DataFrame2中用作连接键的列
left_index 将DataFrame1行索引用作连接键
right_index 将DataFrame2行索引用作连接键
sort 根据连接键对合并后的数据进行排列,默认为True
suffixes 对两个数据集中出现的重复列,新数据集中加上后缀_x,_y进行区别

三、merge用法举例

创建两个数据框


#利用字典dict创建数据框
dataDf1=pd.DataFrame({'lkey':['foo','bar','baz','foo'],
      'value':[1,2,3,4]})
dataDf2=pd.DataFrame({'rkey':['foo','bar','qux','bar'],
      'value':[5,6,7,8]})
print(dataDf1)
print(dataDf2)
>>>
 lkey value
0 foo  1
1 bar  2
2 baz  3
3 foo  4

 rkey value
0 foo  5
1 bar  6
2 qux  7
3 bar  8

内连接(Inner)


#inner链接
dataLfDf=dataDf1.merge(dataDf2, left_on='lkey',right_on='rkey')
>>>
 lkey value_x rkey value_y
0 foo  1 foo  5
1 foo  4 foo  5
2 bar  2 bar  6
3 bar  2 bar  8

右链接(Right)


#Right链接
dataDf1.merge(dataDf2, left_on='lkey', right_on='rkey',how='right')
>>>
 lkey value_x rkey value_y
0 foo  1.0 foo  5
1 foo  4.0 foo  5
2 bar  2.0 bar  6
3 bar  2.0 bar  8
4 NaN  NaN qux  7

全链接(Outer)


#Outer链接
dataDf1.merge(dataDf2, left_on='lkey', right_on='rkey', how='outer')
>>>
 lkey value_x rkey value_y
0 foo  1.0 foo  5.0
1 foo  4.0 foo  5.0
2 bar  2.0 bar  6.0
3 bar  2.0 bar  8.0
4 baz  3.0 NaN  NaN
5 NaN  NaN qux  7.0

以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。如有错误或未考虑完全的地方,望不吝赐教。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。