第 2 章 择菜间:数据清洗食谱


第 2 章 · 择菜间:数据清洗食谱

本章要回答的问题:一份刚读进来的数据,为什么必须先清洗再使用?缺失值、异常值、重复值、错类型,四类脏各用什么函数治,参数怎么选才不伤及好数据?洗到什么程度算干净,有没有可执行的验收标准?本章依次给出可照抄的答案。

为什么会有这一章

老厨师带徒的顺序,从来不是先教颠勺,而是先教择菜:烂叶不摘,汤就发苦;泥沙不冲,满盘硌牙。数据行业同样有个反复被验证的规律——分析结论的大半错误,源头都能追到没洗干净的数据上:缺失没处理,均值悄悄偏了;异常没拦住,一条录错的万元订单把均单价拉高一截;重复没去掉,月活凭空翻着涨。清洗不出彩,但清洗出错一定出丑。

本章把择菜间拆成五道工序,每道围绕一组函数展开:缺失值靠 dropna 与 fillna 这对双子星;异常值靠分位数与 Z 分数两把尺;重复值靠 drop_duplicates 一键清理;类型矫正靠 to_numeric 与 to_datetime 两位翻译;最后的腌制冷藏环节,用缩放、分箱、独热编码把洗好的料做成下游模型爱吃的形态。每一道都按食谱卡展开——适用场景、参数拆解、实操示例、坑点与翻车、替代方案,五个部分一个不少。

读完能解决什么

  • 缺失处置:面对一列空值,能判断该删、该填还是该插值,并能说出选择的代价;
  • 异常侦缉:会用 IQR 与 Z 分数圈出可疑值,且知道为什么动手前必须先问业务;
  • 重复清理:能区分整行重复与键重复,选对 keep 参数,清理后不留索引空洞;
  • 类型矫正:能把混着脏值的数字列、五花八门的时间列安全转成正规类型;
  • 形态预加工:会用 StandardScaler、pd.cut、get_dummies 完成建模前的预处理三件。

可考核知识点清单:dropna 的 how、subset、thresh 三参数各自的适用局面;fillna 用列统计量填充时的对齐行为;ffill 与 bfill 适合什么形态的时间序列;IQR 法里 1.5 与 3 两档系数的宽严差异;Z 分数在偏态分布上失灵的原因;drop_duplicates 的 keep 三种取值;to_numeric 的 errors 三种取值;astype 与 to_* 函数家族的分工;标准化与归一化的几何区别;分箱时 cut 与 qcut 一个等宽一个等频。

各节怎么分工

节 回答哪个问题 关键产出
2.1 缺失值处理 空着的地方删还是填 缺失处置决策流程图
2.2 异常值处理 离谱的数怎么判定处置 两把尺加三道处置闸
2.3 数据去重 重复的记录保哪条 键去重与保序去重手法
2.4 数据类型转换 错型的列怎么安全矫正 to_* 家族使用守则
2.5 标准化与特征编码 洗好的料怎么腌制成形 缩放分箱编码三件套

常见疑问

**问:清洗到什么程度算干净?**没有绝对标准,只有"够下游用"的标准:类型正确、关键列无缺失或缺失已处置且有据可查、异常经过复核、重复已清。本章每节末尾的收档清单就是逐项验收表,五道工序各过各的闸。

**问:清洗会不会把有用信息洗掉?**会,所以本章反复强调"先量再动手、处置记台账"。删除是最后手段,填充要写明口径,异常先过业务复核——清洗的目标是"去伪",不是"去异"。

**问:五道工序的先后能换吗?**大方向不能:类型矫正要在多数填充之前(类型不对,均值都算不出);去重宜早(重复样本会污染统计量);缩放分箱放最后(它们假设数据已经干净)。局部微调可以有,"先腌后洗"不行。

先决条件

  • 完成第 1 章备料间:认得 dtype,知道 NaN 为何把整型列变浮点;
  • 会用布尔面具筛行——2.2 的异常剔除直接建立在这个手法上;
  • 不需要任何统计理论,本章对"分布"的讨论只到"偏不偏"为止。

往下走到哪

择菜合格,下一站切配台:筛选切片、排序排名、字符串与时间的精加工,把洗好的料切成下锅的形状。本章的清洗函数在 8.5 的流水线实战里会按"择菜工序"整体复用一次,届时你会看到它们如何串成一条自动出餐线。

作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U