大家好,我是正在实战各种AI项目的程序员晚枫。
今天学习数据合并与连接,这是整合多个数据源的核心技能。
无论是关联订单和客户信息,还是拼接多个月份的数据,掌握这些技巧都能轻松搞定。
准备示例数据
1 | import pandas as pd |
merge:数据库风格的连接
内连接(Inner Join)
只保留两个表都有的键
1 | # 员工+部门(内连接) |
左连接(Left Join)
保留左表所有记录,右表没有匹配的填NaN
1 | # 员工+工资(左连接) |
右连接(Right Join)
保留右表所有记录
1 | result = pd.merge(employees, salaries, on='员工ID', how='right') |
外连接(Outer Join)
保留两边所有记录
1 | result = pd.merge(employees, salaries, on='员工ID', how='outer') |
连接方式对比
| how参数 | 结果说明 |
|---|---|
| inner | 交集,只保留匹配的记录 |
| left | 以左表为主,右表补充 |
| right | 以右表为主,左表补充 |
| outer | 并集,保留所有记录 |
多键连接
1 | # 当连接键列名不同时 |
concat:轴向连接
纵向拼接(增加行)
1 | # 多个月份的数据拼接 |
横向拼接(增加列)
1 | df_info = pd.DataFrame({'ID': [1, 2], '姓名': ['张三', '李四']}) |
join:基于索引的连接
1 | # 设置索引后使用join |
实战:完整的数据整合流程
1 | # 场景:整合分散在多个表的销售数据 |
常见问题与解决
问题1:重复列名
1 | # 自动添加后缀 |
问题2:数据类型不匹配
1 | # 统一类型后再合并 |
问题3:内存不足
1 | # 分块处理 |
下节预告
下一课我们将学习分组聚合groupby,这是数据分析最强大的功能之一。
💬 加入学习交流群
扫码加入Python学习交流群,和数千名同学一起进步:
👉 点击加入交流群
群里不定期分享:
- 数据分析实战案例
- Python学习资料
- 求职面试经验
- 行业最新动态
推荐:AI Python数据分析实战营
🎁 限时福利:送《利用Python进行数据分析》实体书
👉 点击了解详情
课程导航
上一篇: Pandas数据变换-行列操作
PS:数据合并是日常工作中最常见的操作。理解不同连接方式的差异,选择合适的方法。
