脏数据清洗流水线
适用场景
- 从业务系统/爬虫/表格导出的原始数据,列名乱、格式不统一、有空值和脏字符,直接分析会报错或出假结论。
- 要做月度报表/建模/入库,但每次都要手工处理"日期写成 2026.9.1 / 2026-09-01 / 09/01 混着来"这种麻烦。
- 合并多张来源不同的表,字段同名不同义、单位不一致(元/万元、美元/人民币),需要先统一再 join。
- 给下游(BI/算法/对接方)交付一份"看得过去"的干净数据,并留下可追溯的清洗日志。
工作流
- 贴数据或描述:贴入样本数据(前 N 行即可)或描述字段含义与已知问题(如"第 3 列是金额但混了'元/万'单位")。
- 诊断报告:先输出问题清单——缺失占比、异常值范围、重复键、格式分歧、编码/乱码、类型错误,按"严重程度"排序。
- 定清洗规则:和你确认每条规则的处理策略(缺失→填充/删除/插值;异常→截断/标疑/剔除;重复→按主键去重)。
- 生成脚本:输出可运行代码(默认 Python pandas,也可给 SQL 版),每条规则对应一段带注释的函数,幂等可重跑。
- 跑数验证:给出"清洗前后对比"的预期输出样例(行数变化、字段分布),方便你本地跑完核对。
- 出报告:生成清洗报告模板(处理了多少行、各规则命中数、留下的疑点),可直接附给下游或存档。
示例
输入:一张用户表,birth 列混着 1990-01-01 / 90/1/1 / 空;phone 列有 138-0000-0000 和 13800000000;amount 列混 1,200 和 ¥1,200.00。
产出脚本要点:
- 日期归一:三种格式统一解析为
YYYY-MM-DD,空值标NaT不硬填。 - 手机号:去非数字字符 → 校验 11 位中国手机号 → 不符的进"待复核"清单不静默丢弃。
- 金额:去
¥/逗号 → 转 float,单位统一为"元",原带"万"的 ×10000。 - 输出:清洗后行数、每列缺失率、疑点行导出 csv,供人工确认。
边界
- 只做结构化数据清洗,不处理图片/音视频/非结构化文本(那是别的技能的范围)。
- 缺失值绝不瞎编:默认策略是"标注 + 可解释填充",除非你明确说"用均值插补",否则不擅自生成假数据。
- 异常值判定给的是统计经验阈值(如 3σ / IQR),业务上什么是"真异常"由你拍板,技能不替你做业务决策。
- 清洗脚本默认幂等、可重跑;若源数据含敏感信息(手机号/身份证),提醒你脱敏后再外发。
技术底座
- 规则引擎:缺失/异常/重复/格式/类型/编码六类问题各有一组可组合的检测与修复原语,按字段类型自动匹配。
- 格式归一库:内置常见脏格式的正则与解析器(日期多格式、金额多单位、电话多写法、全半角、BOM/GBK 乱码)。
- 校验链:清洗后自动跑一致性校验(主键唯一、外键存在、范围合理),产出"通过/疑点"清单。
- 可移植输出:同一套规则既生成 pandas 脚本,也生成等价 SQL(UPDATE/DELETE + CTE),适配你是在 Python 还是数据库里洗。
- 报告生成:自动汇总各规则命中数与行级疑点,输出可直接粘贴进工单/文档的 Markdown 报告。
Scan to join WeChat group