当前位置:   article > 正文

Pandas merge()函数介绍_pandas merge函数

pandas merge函数

基本介绍

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

基本用法

  • 假设我们有两个 DataFrame,df1 和 df2,我们想要根据某个共同的列(例如 'key')来合并它们。
      1. import pandas as pd
      2. # 创建两个示例 DataFrame
      3. df1 = pd.DataFrame({
      4. 'key': ['A', 'B', 'C', 'D'],
      5. 'value1': [1, 2, 3, 4]
      6. })
      7. print(df1)
      8. """
      9. key value1
      10. 0 A 1
      11. 1 B 2
      12. 2 C 3
      13. 3 D 4
      14. """
      15. df2 = pd.DataFrame({
      16. 'key': ['B', 'C', 'D', 'E'],
      17. 'value2': [5, 6, 7, 8]
      18. })
      19. print(df2)
      20. """
      21. key value2
      22. 0 B 5
      23. 1 C 6
      24. 2 D 7
      25. 3 E 8
      26. """
      27. # 使用 merge() 函数合并
      28. merged = pd.merge(df1, df2, on='key')
      29. print(merged)
      30. """
      31. key value1 value2
      32. 0 B 2 5
      33. 1 C 3 6
      34. 2 D 4 7
      35. """

主要参数 

  • 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。
  • cross: 全连接不用指定on参数。
      1. import pandas as pd
      2. # 创建两个示例 DataFrame
      3. df1 = pd.DataFrame({
      4. 'key': ['A', 'B', 'C', 'D'],
      5. 'value1': [1, 2, 3, 4]
      6. })
      7. print(df1)
      8. """
      9. key value1
      10. 0 A 1
      11. 1 B 2
      12. 2 C 3
      13. 3 D 4
      14. """
      15. df2 = pd.DataFrame({
      16. 'key': ['B', 'C', 'D', 'E'],
      17. 'value2': [5, 6, 7, 8]
      18. })
      19. print(df2)
      20. """
      21. key value2
      22. 0 B 5
      23. 1 C 6
      24. 2 D 7
      25. 3 E 8
      26. """
      27. # 使用 merge() 函数合并
      28. merged = pd.merge(df1, df2, on='key')
      29. print(merged)
      30. """
      31. key value1 value2
      32. 0 B 2 5
      33. 1 C 3 6
      34. 2 D 4 7
      35. """
      36. # 内连接(inner join)
      37. inner_merged = pd.merge(df1, df2, on='key', how='inner')
      38. print("Inner Merge:\n", inner_merged)
      39. """
      40. Inner Merge:
      41. key value1 value2
      42. 0 B 2 5
      43. 1 C 3 6
      44. 2 D 4 7
      45. """
      46. # 左连接(left join)
      47. left_merged = pd.merge(df1, df2, on='key', how='left')
      48. print("\nLeft Merge:\n", left_merged)
      49. """
      50. Left Merge:
      51. key value1 value2
      52. 0 A 1 NaN
      53. 1 B 2 5.0
      54. 2 C 3 6.0
      55. 3 D 4 7.0
      56. """
      57. # 右连接(right join)
      58. right_merged = pd.merge(df1, df2, on='key', how='right')
      59. print("\nRight Merge:\n", right_merged)
      60. """
      61. Right Merge:
      62. key value1 value2
      63. 0 B 2.0 5
      64. 1 C 3.0 6
      65. 2 D 4.0 7
      66. 3 E NaN 8
      67. """
      68. # 外连接(outer join)
      69. outer_merged = pd.merge(df1, df2, on='key', how='outer')
      70. print("\nOuter Merge:\n", outer_merged)
      71. """
      72. Outer Merge:
      73. key value1 value2
      74. 0 A 1.0 NaN
      75. 1 B 2.0 5.0
      76. 2 C 3.0 6.0
      77. 3 D 4.0 7.0
      78. 4 E NaN 8.0
      79. """
      80. # 全连接 (cross)
      81. cross_merged = pd.merge(df1, df2, how='cross')
      82. print("\nCross Merge:\n", cross_merged)
      83. """
      84. Cross Merge:
      85. key_x value1 key_y value2
      86. 0 A 1 B 5
      87. 1 A 1 C 6
      88. 2 A 1 D 7
      89. 3 A 1 E 8
      90. 4 B 2 B 5
      91. 5 B 2 C 6
      92. 6 B 2 D 7
      93. 7 B 2 E 8
      94. 8 C 3 B 5
      95. 9 C 3 C 6
      96. 10 C 3 D 7
      97. 11 C 3 E 8
      98. 12 D 4 B 5
      99. 13 D 4 C 6
      100. 14 D 4 D 7
      101. 15 D 4 E 8
      102. """

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/697203
推荐阅读
相关标签
  

闽ICP备14008679号