Python基础 _Pandas_merge用法

merge

1. 简介

pandas.merge()pandas 库中用于合并两个 DataFrame 的函数,类似于 SQL 中的 JOIN 操作。它可以根据一个或多个键将不同的 DataFrame 合并在一起,适用于数据分析中的数据整合与清洗工作。

2. 基本语法
pandas.merge(left, right, how='inner', on=None, left_on=None, right_on=None, 
             left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), 
             copy=True, indicator=False, validate=None)
3. 参数详解
  • left:左侧的 DataFrame。
  • right:右侧的 DataFrame。
  • how:合并方式,默认为 ‘inner’,可以选择:
    • 'left':左连接,保留左表的所有记录。
    • 'right':右连接,保留右表的所有记录。
    • 'outer':全外连接,保留左右表的所有记录。
    • 'inner':内连接,仅保留左右表的交集部分。
  • on:用于合并的列名列表。如果两个 DataFrame 中有相同的列名,可以使用该参数。
  • left_on:左侧 DataFrame 中用于合并的列名。
  • right_on:右侧 DataFrame 中用于合并的列名。
  • left_index:如果为 True,则使用左侧 DataFrame 的索引进行合并。
  • right_index:如果为 True,则使用右侧 DataFrame 的索引进行合并。
  • sort:是否对合并后的数据进行排序,默认为 False
  • suffixes:列名冲突时添加的后缀,默认为 ('_x', '_y')
  • copy:默认为 True,表示合并时复制数据。
  • indicator:如果为 True,会在结果中添加一列 _merge,指示行来源于左表、右表还是两者都有。
  • validate:如果为 True,检查合并的唯一性(‘one_to_one’, ‘one_to_many’, ‘many_to_one’, ‘many_to_many’)。
4. 常见用法示例
4.1 根据单个键合并
result = pd.merge(df1, df2, on='key')
  • 作用:合并两个 DataFrame,使用 key 列作为键。默认为内连接,保留两个 DataFrame 中 key 列匹配的行。
4.2 左连接
result = pd.merge(df1, df2, how='left', on='key')
  • 作用:保留左侧 DataFrame 中的所有行,如果右侧 DataFrame 中没有匹配项,则结果中对应的列填充 NaN
4.3 右连接
result = pd.merge(df1, df2, how='right', on='key')
  • 作用:保留右侧 DataFrame 中的所有行,如果左侧 DataFrame 中没有匹配项,则结果中对应的列填充 NaN
4.4 全外连接
result = pd.merge(df1, df2, how='outer', on='key')
  • 作用:保留两个 DataFrame 中的所有行,没有匹配的地方填充 NaN
4.5 根据多个键合并
result = pd.merge(df1, df2, on=['key1', 'key2'])
  • 作用:根据多个键列进行合并,只有在 key1key2 都匹配的情况下,行才会出现在合并结果中。
4.6 使用索引合并
result = pd.merge(df1, df2, left_index=True, right_index=True, how='outer')
  • 作用:使用 DataFrame 的索引进行合并。可以用于处理无明确主键的合并。
4.7 处理列名冲突
result = pd.merge(df1, df2, on='key', suffixes=('_left', '_right'))
  • 作用:在合并时,为重复的列添加后缀以区分来源。
4.8 指示行的来源
result = pd.merge(df1, df2, on='key', how='outer', indicator=True)
  • 作用:在结果中添加一列 _merge,指示每行是来自左表、右表还是两者都有。
5. 总结
  • merge 用于合并两个 DataFrame,通过多种方式(内连接、外连接、左连接、右连接等)进行数据合并。
  • 通过调整参数如 how, on, left_on, right_on, suffixes, indicator
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值