TT's Learning
← 返回首页

多数据集合并

学习使用Pandas进行多数据集的合并操作,包括merge、concat、join等方法。

基础 30分钟 📁 merged_data.csv
学习进度
0%
0/4
已学习
0/5
练习
0
得分
第一章 数据合并基础

1.1 什么是数据合并

数据合并是将多个数据集按照某种规则组合成一个新数据集的过程。在数据分析中,我们经常需要从多个数据源获取信息并将它们合并在一起进行分析。

  • merge:基于共同列进行合并(类似SQL的JOIN操作)
  • concat:沿着指定轴进行连接
  • join:基于索引进行合并

💡 数据合并是数据处理中非常重要的操作,掌握它可以让你灵活处理来自不同数据源的数据。

1.2 合并类型

常见的合并类型包括:

# 内连接 - 只保留两个表都有的行
pd.merge(df1, df2, on='key', how='inner')

# 左连接 - 保留左表所有行
pd.merge(df1, df2, on='key', how='left')

# 右连接 - 保留右表所有行
pd.merge(df1, df2, on='key', how='right')

# 外连接 - 保留两个表的所有行
pd.merge(df1, df2, on='key', how='outer')
第二章 merge操作

2.1 基础merge

merge是最常用的数据合并方法,可以根据一个或多个键将DataFrame连接在一起。

import pandas as pd

# 创建两个DataFrame
df1 = pd.DataFrame({
    'id': [1, 2, 3, 4],
    'name': ['张三', '李四', '王五', '赵六'],
    'age': [25, 30, 35, 40]
})

df2 = pd.DataFrame({
    'id': [1, 2, 3, 5],
    'city': ['北京', '上海', '广州', '深圳'],
    'salary': [8000, 10000, 9000, 12000]
})

# 内连接
result = pd.merge(df1, df2, on='id')
print(result)

2.2 不同键名的合并

当两个DataFrame的键名不同时,可以分别指定左右键:

# 键名不同时的合并
df1 = pd.DataFrame({
    'user_id': [1, 2, 3],
    'name': ['张三', '李四', '王五']
})

df2 = pd.DataFrame({
    'id': [1, 2, 4],
    'score': [85, 90, 78]
})

result = pd.merge(df1, df2, left_on='user_id', right_on='id')
print(result)
第三章 concat操作

3.1 concat基础

concat用于沿着指定轴连接多个DataFrame。

import pandas as pd

# 创建两个DataFrame
df_a = pd.DataFrame({
    'A': ['A0', 'A1', 'A2'],
    'B': ['B0', 'B1', 'B2']
})

df_b = pd.DataFrame({
    'A': ['A3', 'A4', 'A5'],
    'B': ['B3', 'B4', 'B5']
})

# 纵向合并
result = pd.concat([df_a, df_b], ignore_index=True)
print("纵向合并:")
print(result)

# 横向合并(列方向)
df_c = pd.DataFrame({
    'city': ['北京', '上海', '广州', '深圳']
})
result_h = pd.concat([result, df_c], axis=1)
print("\n横向合并:")
print(result_h)
第四章 数据合并实战

4.1 综合示例

💻 在线代码编辑器
输入 Python 代码后点击运行按钮执行
练习题(共5题)

练习 1:基础merge操作

使用merge合并两个DataFrame。

练习 2:左连接

使用左连接保留所有左表数据。

练习 3:concat纵向合并

使用concat进行纵向合并。

练习 4:concat横向合并

使用concat进行横向合并。

练习 5:多表合并综合练习

综合使用merge合并多个表。

测试题(共 5 题,满分 100 分)

问题 1 / 5

以下哪种合并方式会保留左表的所有行?

问题 2 / 5

concat默认是沿着哪个轴进行合并?

问题 3 / 5

merge方法中,当两个DataFrame的键名不同时,应该使用哪个参数?

问题 4 / 5

外连接会保留哪些行?

问题 5 / 5

以下哪个方法是基于索引进行合并的?

作业提交

📝 数据合并作业

请完成以下数据合并任务:

  • 1. 创建订单、客户、产品三个DataFrame
  • 2. 使用merge合并订单和客户数据
  • 3. 再合并产品数据
  • 4. 统计每个客户的总消费金额
💻 作业代码提交