自学内容网 自学内容网

Pandas merge()函数介绍

基本介绍

  • merge() 函数是 Pandas 库中一个非常强大的工具,用于根据一个或多个键将两个 DataFrame 合并起来。这是数据整合和清洗中经常使用的操作。merge() 函数提供了多种合并方式,包括内连接(inner join)、左连接(left join)、右连接(right join)和外连接(outer join)。

基本用法

  • 假设我们有两个 DataFrame,df1 和 df2,我们想要根据某个共同的列(例如 'key')来合并它们。
    • import pandas as pd
      
      # 创建两个示例 DataFrame
      df1 = pd.DataFrame({
          'key': ['A', 'B', 'C', 'D'],
          'value1': [1, 2, 3, 4]
      })
      print(df1)
      """
        key  value1
      0   A       1
      1   B       2
      2   C       3
      3   D       4
      """
      
      df2 = pd.DataFrame({
          'key': ['B', 'C', 'D', 'E'],
          'value2': [5, 6, 7, 8]
      })
      print(df2)
      """
        key  value2
      0   B       5
      1   C       6
      2   D       7
      3   E       8
      """
      
      # 使用 merge() 函数合并
      merged = pd.merge(df1, df2, on='key')
      print(merged)
      """
        key  value1  value2
      0   B       2       5
      1   C       3       6
      2   D       4       7
      """
      

主要参数 

  • left:左侧 DataFrame。
  • right:右侧 DataFrame。
  • on:用于合并的列名。必须存在于两个 DataFrame 中。
  • how:指定合并类型,可选值为 'left', 'right', 'outer', 'inner',默认为 'inner'。
  • left_on:左侧 DataFrame 中用于合并的列名。
  • right_on:右侧 DataFrame 中用于合并的列名。
  • left_index:如果为 True,则使用左侧 DataFrame 的索引作为合并键。
  • right_index:如果为 True,则使用右侧 DataFrame 的索引作为合并键。
  • sort:根据合并键对合并后的数据进行排序,默认为 True。
  • suffixes:一个元组,用于添加到重叠列名的后缀

合并类型

  • inner:只保留两个 DataFrame 中都有的键的行。
  • left:保留左侧 DataFrame 的所有键,如果右侧 DataFrame 中没有匹配的键,则对应列填充为 NaN。
  • right:保留右侧 DataFrame 的所有键,如果左侧 DataFrame 中没有匹配的键,则对应列填充为 NaN。
  • outer:保留两个 DataFrame 的所有键,如果没有匹配的键,则对应列填充为 NaN。
    • import pandas as pd
      
      # 创建两个示例 DataFrame
      df1 = pd.DataFrame({
          'key': ['A', 'B', 'C', 'D'],
          'value1': [1, 2, 3, 4]
      })
      print(df1)
      """
        key  value1
      0   A       1
      1   B       2
      2   C       3
      3   D       4
      """
      
      df2 = pd.DataFrame({
          'key': ['B', 'C', 'D', 'E'],
          'value2': [5, 6, 7, 8]
      })
      print(df2)
      """
        key  value2
      0   B       5
      1   C       6
      2   D       7
      3   E       8
      """
      
      # 使用 merge() 函数合并
      merged = pd.merge(df1, df2, on='key')
      print(merged)
      """
        key  value1  value2
      0   B       2       5
      1   C       3       6
      2   D       4       7
      """
      
      # 内连接(inner join)
      inner_merged = pd.merge(df1, df2, on='key', how='inner')
      print("Inner Merge:\n", inner_merged)
      """
      Inner Merge:
         key  value1  value2
      0   B       2       5
      1   C       3       6
      2   D       4       7
      """
      
      # 左连接(left join)
      left_merged = pd.merge(df1, df2, on='key', how='left')
      print("\nLeft Merge:\n", left_merged)
      """
      Left Merge:
         key  value1  value2
      0   A       1     NaN
      1   B       2     5.0
      2   C       3     6.0
      3   D       4     7.0
      """
      
      # 右连接(right join)
      right_merged = pd.merge(df1, df2, on='key', how='right')
      print("\nRight Merge:\n", right_merged)
      """
      Right Merge:
         key  value1  value2
      0   B     2.0       5
      1   C     3.0       6
      2   D     4.0       7
      3   E     NaN       8
      """
      
      # 外连接(outer join)
      outer_merged = pd.merge(df1, df2, on='key', how='outer')
      print("\nOuter Merge:\n", outer_merged)
      """
      Outer Merge:
         key  value1  value2
      0   A     1.0     NaN
      1   B     2.0     5.0
      2   C     3.0     6.0
      3   D     4.0     7.0
      4   E     NaN     8.0
      """
      

merge() 函数是 Pandas 中非常强大的工具,它允许你根据一个或多个键灵活地合并 DataFrame。通过熟练掌握 merge() 函数,你可以更有效地整合和清洗数据。 


原文地址:https://blog.csdn.net/ciky2011/article/details/136388360

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!