Pandas实战100例 | 案例 27: 数据合并 - 使用 `merge`

案例 27: 数据合并 - 使用 merge

知识点讲解

在数据处理中,经常需要将来自不同来源的数据集合并在一起。Pandas 提供了 merge 函数,它类似于 SQL 中的 JOIN 操作,可以根据一个或多个键来合并两个 DataFrame。

  • 内连接 (inner): 只合并两个 DataFrame 中都有的键。
  • 外连接 (outer): 合并两个 DataFrame 中的所有键,不存在的值用 NaN 填充。
  • 左连接 (left): 保留左边 DataFrame 的所有键。
  • 右连接 (right): 保留右边 DataFrame 的所有键。
示例代码
# 准备数据和示例代码的运行结果,用于案例 27

# 示例数据
data_merging = {
   
    'ID': [1, 2, 3, 4],
    'Name': ['Alice', 'Bob', 'Charlie', 'David']
}
df1_merging = pd.DataFrame(data_merging)

additional_data = {
   
    'ID': [3, 4, 5, 6],
    'Age': [25, 30, 35, 40]
}
df2_merging = pd.DataFrame(additional_data)

# 合并数据
merged_inner = pd.merge(df1_merging, df2_merging, on='ID', how='inner')
merged_outer = pd.merge(df1_merging, df2_merging, on='ID', how='outer')
merged_left = pd.merge(df1_merging, df2_merging, on='ID', how='left')
merged_right = pd.merge(df1_merging, df2_merging, on='ID', how='right')

df1_merging, df2_merging, merged_inner, merged_outer, merged_left, merged_right


在这个示例中,我们使用不同的方式合并了两个 DataFrame:一个包含 ID 和 Name,另一个包含 ID 和 Age。

示例代码运行结果

原始 DataFrame (df1_merging):

   ID     Name
0   1    Alice
1   2      Bob
2   3  Charlie
3   4    David

原始 DataFrame (df2_merging):

   ID  Age
0   3   25
1   4   30
2   5   35
3   6   40

内连接 (merged_inner):

   ID     Name  Age
0   3  Charlie   25
1   4    David   30

外连接 (merged_outer):

   ID     Name   Age
0   1    Alice   NaN
1   2      Bob   NaN
2   3  Charlie  25.0
3   4    David  30.0
4   5      NaN  35.0
5   6      NaN  40.0

左连接 (merged_left):

   ID     Name   Age
0   1    Alice   NaN
1   2      Bob   NaN
2   3  Charlie  25.0
3   4    David  30.0

右连接 (merged_right):

   ID     Name  Age
0   3  Charlie   25
1   4    David   30
2   5      NaN   35
3   6      NaN   40

这个案例展示了如何使用不同类型的连接来合并数据集,这对于数据整合和分析是非常重要的。

相关推荐

  1. Pandas实战100 | 案例 27: 数据合并 - 使用 `merge`

    2024-01-17 06:42:02       32 阅读
  2. Pandas实战100 | 案例 25: 计算相关系数

    2024-01-17 06:42:02       40 阅读
  3. Pandas实战100 | 案例 43: 数据排序

    2024-01-17 06:42:02       31 阅读
  4. Pandas实战100 | 案例 31: 转换为分类数据

    2024-01-17 06:42:02       34 阅读
  5. Pandas实战100 | 案例 19: 基本数学运算

    2024-01-17 06:42:02       34 阅读
  6. Pandas实战100 | 案例 49: 数值运算

    2024-01-17 06:42:02       32 阅读
  7. Pandas实战100 | 案例 9: 数据重塑 - `pivot` 和 `melt`

    2024-01-17 06:42:02       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-17 06:42:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-17 06:42:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-17 06:42:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-17 06:42:02       20 阅读

热门阅读

  1. GitHub Copilot使用方法

    2024-01-17 06:42:02       39 阅读
  2. 贪心+蓝桥杯

    2024-01-17 06:42:02       45 阅读
  3. python3的几个大坑

    2024-01-17 06:42:02       26 阅读
  4. qt绘制生成PDF文件

    2024-01-17 06:42:02       32 阅读
  5. 开源世界许可证Copyleft GPL LGPL MIT BSD Apache

    2024-01-17 06:42:02       39 阅读
  6. PTA——7-4 奇葩楼层 (15 分)

    2024-01-17 06:42:02       36 阅读
  7. [leetcode~数位动态规划] 2719. 统计整数数目 hard

    2024-01-17 06:42:02       34 阅读