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
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pandas 是一个强大的数据分析工具,提供了很多常用的函数来处理数据,下面是一些常用的函数及其用法: 1. read_csv():读取 CSV 文件并返回一个 DataFrame 对象。 2. head():返回 DataFrame 的前几行数据,默认为前 5 行。 3. tail():返回 DataFrame 的后几行数据,默认为后 5 行。 4. info():返回 DataFrame 的基本信息,包括每列的数据类型、非空值数量等。 5. describe():返回 DataFrame 的基本统计信息,包括计数、均值、标准差、最小值、最大值等。 6. shape:返回 DataFrame 的行数和列数。 7. columns:返回 DataFrame 的列名。 8. index:返回 DataFrame 的行索引。 9. loc[]:根据行标签和列标签访问 DataFrame 中的元素。 10. iloc[]:根据行索引和列索引访问 DataFrame 中的元素。 11. dropna():删除 DataFrame 中的缺失值。 12. fillna():用指定的值或方法填充 DataFrame 中的缺失值。 13. groupby():按照指定的列对 DataFrame 进行分组。 14. apply():对 DataFrame 的每一列应用指定的函数。 15. pivot_table():根据指定的列计算 DataFrame 的透视表。 16. merge():将两个 DataFrame 按照指定的列进行合并。 17. sort_values():按照指定的列对 DataFrame 进行排序。 18. drop_duplicates():去除 DataFrame 中的重复行。 19. value_counts():统计 DataFrame 中每个元素出现的次数。 20. isnull():判断 DataFrame 中的元素是否为空值。 这些函数覆盖了 Pandas 中的很多常用操作,掌握它们对于数据分析和处理非常有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值