本章要回答的问题:清洗与聚合管不到的"临时加工"——逐值映射、复杂文本匹配、从大盆里取样品——用什么工具?map 与 apply 长得像,作用范围差在哪?正则表达式这把"万能小刀"怎么用才不伤手?本章的调味不占工序,却在每道菜里都可能用上。
前五章的手法都是"建制内的":清洗有固定流程,聚合有固定套路,合并有固定姿势。但真实数据总有建制外的东西:一列枚举值要按业务字典翻译,地址里藏着不规则的门牌号,全量数据太大要先取样品试手艺。这些活在后厨里的位置就像调味架——不占炉灶,但离了它,菜就差那一口。
调味架的手法还有个共性:它们是"横向"的。函数式工具能在任何一列上施展,正则能在任何一段文本上施展,抽样能在任何一步前使用——所以本章不排进出餐主线的先后,而按"各自成味"组织。也正因如此,学它的最好方式是带着前五章的具体场景来:每种调味料,都会对应一个你已经见过的工序现场。
可考核知识点清单:map 与 apply 一个吃字典一个吃函数的分工;DataFrame 的 apply 按行还是按列取决于 axis;逐元素替换在新版 pandas 里的正确函数名;正则的贪婪与懒惰量词;分组捕获在 extract 里的形态;contains 与 replace 的正则开关默认值(3.3 已立规矩,本章串成体系);sample 的 random_state 与 frac 的用法;replace 抽样与放回的关系;chunksize 分块读取的迭代形态;批处理与流处理在"窗口"概念上的差异。
| 节 | 回答哪个问题 | 关键产出 |
|---|---|---|
| 6.1 map与apply | 逐值加工怎么挂函数 | 作用域对照与性能账 |
| 6.2 正则表达式 | 复杂文本怎么切 | 提取替换模式库 |
| 6.3 抽样与批流处理 | 大盆料怎么试手 | 可复现抽样与分块读取 |
**问:map、apply 与第 4 章的聚合函数重复吗?**不重复,但边界要清:groupby 配 agg 是"成建制"的聚合手法,apply 是"临时加工"的万能胶。能用现成聚合函数的地方优先用它们——apply 兜底,不是主菜。性能上的差别,6.1 与 8.1 会各算一笔账。
**问:正则要学到什么深度?**本册的定位是"够用且不伤手":字符类、量词、分组三大件加转义与锚定,覆盖九成的提取替换需求。更深的回溯控制、零宽断言之类,等真遇到再说——过度预学容易忘。
**问:批处理与流处理,初学者要都学吗?**要懂概念,不必都上手。6.3 的目标是给你"量级观":知道手头的活属于哪一档、什么时候该换锅。真写流式作业是另一门工程课,这里只负责让你在架构讨论中不迷路。
调味架备齐,下一站是成建制的中央厨房:pandas 函数地图、NumPy 向量化、SciPy 与 scikit-learn 调料柜、Dask 与 PySpark 大厨房。6.3 的量级观会直接决定 7.4 里"什么时候该换大厨房";6.1 的性能账在 8.1 会正式结账。