第 5 章 合并与重塑#
这一章要解决什么#
前四章你一直在处理一张表。但真实的工作很少只给你一张表。
现在想象这些场景:
- 订单表里有订单号、城市、金额,客户表里有订单号对应的客户名和会员等级——你得把两张表拼起来;
- 这个月的表和上个月的表结构一样,你想摞成一张看整年趋势;
- 报表里「一季度、二季度、三季度」是三列,你想变成三行,好画图;
- 或者反过来,长表变宽表,好放进 Excel 模板。
这四类需求对应 Pandas 里的四个工具:
| 需求 | 工具 | 一句话 |
|---|---|---|
| 两张表按共同字段横向拼 | merge() | 查字典,把信息补进去 |
| 多张表摞起来 | concat() | 复制粘贴,加行或加列 |
| 宽表变长表 | melt() | 把「几列」压成「几行」 |
| 长表变宽表 | unstack() / pivot() | 把「几行」摊成「几列」 |
章节导航#
- 第 5.1 节 核心知识点——
merge()的四种how、concat()的行列拼接、melt()、unstack(),以及apply()/map()的自定义变换。 - 第 5.2 节 编程练习——5 道动手题,从「两表合并」一路做到「自定义变换」。
- 第 5.3 节 常见问题——10 个高频疑问,比如「
merge和concat到底选哪个」「applymap在新版 Pandas 里没了怎么办」。
预备知识#
- 会第 4 章的
groupby(); - 知道「索引」是什么(第 2 章);
- 知道 Python 的列表拼接。
本章最重要的一件事
merge()是「按条件匹配」,concat()是「按位置堆叠」。 这两者的区别,是本章 90% 的困惑来源。 合并前先问自己:我是想「补信息」,还是想「加记录」?
本章内容
第5.1节 核心知识点(50分钟)
本文是 Pandas 数据分析实战课程第 5 章第 1 节,系统讲解 Pandas 的 5 个合并重塑核心操作:merge 的 inner/left/right/outer 四种连接方式、concat 的行列拼接、melt 宽格式转长格式 …
第5.2节 编程练习(50分钟)
本文是 Pandas 数据分析实战课程第 5 章第 2 节,提供 5 道编程练习:按共同字段合并两张表、用 concat 按行或按列拼接数据、把多指标列的宽表转成长表、用 unstack 把多级索引转成宽表,以及用 apply 对指定列或行 …
第5.3节 常见问题(35分钟)
本文是 Pandas 数据分析实战课程第 5 章第 3 节,汇总了初学者在 Pandas 合并与重塑时最常遇到的 10 个问题并逐一解答,涵盖 merge 与 concat 的区别、四种连接方式的含义、多字段合并、重复列名的 …