pandas中如何使用merge函数
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章给大家分享的是有关pandas中如何使用merge函数的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。mergemerge函数方法类似SQL里的join,可以是pd.
千家信息网最后更新 2026年11月04日pandas中如何使用merge函数
这篇文章给大家分享的是有关pandas中如何使用merge函数的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
merge
merge函数方法类似SQL里的join,可以是pd.merge或者df.merge,区别就在于后者待合并的数据是
pd.merge( left: 'DataFrame | Series', right: 'DataFrame | Series', how: 'str' = 'inner', on: 'IndexLabel | None' = None, left_on: 'IndexLabel | None' = None, right_on: 'IndexLabel | None' = None, left_index: 'bool' = False, right_index: 'bool' = False, sort: 'bool' = False, suffixes: 'Suffixes' = ('_x', '_y'), copy: 'bool' = True, indicator: 'bool' = False, validate: 'str | None' = None,) -> 'DataFrame'在函数方法中,关键参数含义如下:
left: 用于连接的左侧数据
right: 用于连接的右侧数据
how: 数据连接方式,默认为 inner,可选outer、left和right
on: 连接关键字段,左右侧数据中需要都存在,否则就用left_on和right_on
left_on: 左侧数据用于连接的关键字段
right_on: 右侧数据用于连接的关键字段
left_index: True表示左侧索引为连接关键字段
right_index: True表示右侧索引为连接关键字段
suffixes: ‘Suffixes’ = (’_x’, ‘_y’),可以自由指定,就是同列名合并后列名显示后缀
indicator: 是否显示合并后某行数据的归属来源
接下来,我们就对该函数功能进行演示
基础合并
In [55]: df1 = pd.DataFrame({'key': ['foo', 'bar', 'bal'], ...: 'value2': [1, 2, 3]})In [56]: df2 = pd.DataFrame({'key': ['foo', 'bar', 'baz'], ...: 'value1': [5, 6, 7]})In [57]: df1.merge(df2)Out[57]: key value2 value10 foo 1 51 bar 2 6其他连接方式
In [58]: df1.merge(df2, how='left')Out[58]: key value2 value10 foo 1 5.01 bar 2 6.02 bal 3 NaNIn [59]: df1.merge(df2, how='right')Out[59]: key value2 value10 foo 1.0 51 bar 2.0 62 baz NaN 7In [60]: df1.merge(df2, how='outer')Out[60]: key value2 value10 foo 1.0 5.01 bar 2.0 6.02 bal 3.0 NaN3 baz NaN 7.0In [61]: df1.merge(df2, how='cross')Out[61]: key_x value2 key_y value10 foo 1 foo 51 foo 1 bar 62 foo 1 baz 73 bar 2 foo 54 bar 2 bar 65 bar 2 baz 76 bal 3 foo 57 bal 3 bar 68 bal 3 baz 7
指定连接键
可以指定单个连接键,也可以指定多个连接键
In [62]: df1 = pd.DataFrame({'lkey1': ['foo', 'bar', 'bal'], ...: 'lkey2': ['a', 'b', 'c'], ...: 'value2': [1, 2, 3]})In [63]: df2 = pd.DataFrame({'rkey1': ['foo', 'bar', 'baz'], ...: 'rkey2': ['a', 'b', 'c'], ...: 'value2': [5, 6, 7]}) In [64]: df1Out[64]: lkey1 lkey2 value20 foo a 11 bar b 22 bal c 3In [65]: df2Out[65]: rkey1 rkey2 value20 foo a 51 bar b 62 baz c 7In [66]: df1.merge(df2, left_on='lkey1', right_on='rkey1')Out[66]: lkey1 lkey2 value2_x rkey1 rkey2 value2_y0 foo a 1 foo a 51 bar b 2 bar b 6In [67]: df1.merge(df2, left_on=['lkey1','lkey2'], right_on=['rkey1','rkey2'])Out[67]: lkey1 lkey2 value2_x rkey1 rkey2 value2_y0 foo a 1 foo a 51 bar b 2 bar b 6指定索引为键
Out[68]: df1.merge(df2, left_index=True, right_index=True)Out[68]: lkey1 lkey2 value2_x rkey1 rkey2 value2_y0 foo a 1 foo a 51 bar b 2 bar b 62 bal c 3 baz c 7
设置重复列后缀
In [69]: df1.merge(df2, left_on='lkey1', right_on='rkey1', suffixes=['左','右'])Out[69]: lkey1 lkey2 value2左 rkey1 rkey2 value2右0 foo a 1 foo a 51 bar b 2 bar b 6
连接指示
新增一列用于显示数据来源
In [70]: df1.merge(df2, left_on='lkey1', right_on='rkey1', suffixes=['左','右'], how='outer', ...: indicator=True ...: )Out[70]: lkey1 lkey2 value2左 rkey1 rkey2 value2右 _merge0 foo a 1.0 foo a 5.0 both1 bar b 2.0 bar b 6.0 both2 bal c 3.0 NaN NaN NaN left_only3 NaN NaN NaN baz c 7.0 right_only
感谢各位的阅读!关于"pandas中如何使用merge函数"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
数据
关键
函数
字段
右侧
索引
内容
后缀
方式
方法
更多
来源
篇文章
不错
实用
自由
接下来
功能
单个
参数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网是第几次科技革命的成果
互联网科技公司经营范围
江苏根荣互联网科技
互联网科技未来
互联网科技的
朗涯互联网科技
小马过河互联网科技
亿账通互联网科技
互联网科技股午盘股票涨跌
安控科技rtu产品工业互联网
互联网实体化科技化
福州新华互联网科技学校 知乎
移动互联网科技公司
消费医药和互联网科技
陕西云淼互联网科技公司
广东鹅鹅鹅互联网科技有限公司
互联网科技新闻
科技信息时代互联网发展
恒生科技互联网指数十大成分股
中国主要互联网科技公司
互联网为科技
菲比寻常互联网科技
互联网科技类展会
安控科技rtu产品工业互联网
银川新华互联网科技职业技术培训学校图片
昭通互联网科技选哪家
辽宁互联网新科技
民营互联网公司国防科技
济南有互联网科技公司吗
互联网第三次科技革命特征