用 Python 做批量 CSV 清洗时,先统一字段再谈规则

很多人第一次做 CSV 批量清洗时,最先想到的是写各种规则:去重、补空值、改格式、筛异常、改编码。结果脚本越写越长,后面一换来源文件,规则就开始互相打架。
CSV 清洗真正最值得先做的,不是急着写几十条业务规则,而是把字段结构先统一下来。字段名不统一、日期格式不统一、空值表达方式不统一,后面所有清洗逻辑都会变得脆弱。
第一步先统一列名
不同来源的 CSV 很容易出现这种情况:
- `phone`
- `mobile`
- `手机号`
- `联系电话`
它们其实表达的是同一个意思,但如果你不先做字段映射,后面每条规则都得兼容一遍。
更稳的方式通常是先做一层列名标准化,例如统一成:
- `user_name`
- `mobile`
- `created_at`
- `status`
这样后面再写清洗规则,代码会简单很多。
第二步再统一空值表达
CSV 里的空值非常容易乱:
- 空字符串
- `NULL`
- `N/A`
- `-`
- 空格
如果不先统一,后面的判空逻辑就会到处重复写。
所以很适合在数据入脚本后,先做一轮标准化,把这些值统一处理成同一种缺失表达。
日期和数字字段也要尽早规范
很多清洗脚本后面难维护,不是因为业务规则复杂,而是同一列数据格式不一致。
例如日期字段里同时混着:
- `2026/04/24`
- `2026-04-24`
- `24-04-2026`
- `2026.04.24 13:00`
数字字段也可能同时有:
- `1,200`
- `1200`
- `1200.00`
- `¥1200`
如果这些基础格式不先整理,后面的统计、筛选和入库都容易出错。
去重别只按整行比
很多脚本一做去重,就直接按整行去比。这样当然简单,但很多实际重复数据不是“完全一样”,而是关键字段重复。
更常见的做法通常是按业务键去重,例如:
- 手机号
- 邮箱
- 订单号
- 用户 ID + 日期
先把“什么叫重复”定义清楚,比直接上去删行更稳。
清洗规则最好拆成几个阶段
如果你把所有逻辑全写在一个循环里,后面读起来会非常累。我更建议把 CSV 清洗拆成几个阶段:
- 读取和编码处理
- 字段标准化
- 基础值清洗
- 业务规则处理
- 导出和异常记录
这样后面出问题时,你更容易知道是哪一层出了偏差。
异常数据别直接吞掉
很多批处理脚本最容易犯的一个错,是遇到异常值直接跳过。短期省事,后面排查会非常被动,因为你根本不知道数据到底丢了多少、丢在哪。
更稳的做法通常是:
- 正常数据输出到清洗结果
- 异常数据单独输出到错误文件
- 保留错误原因字段
这样后面补数据、回查来源、修规则都会轻松很多。
批量清洗最怕“规则写死在文件名里”
不少脚本最开始只服务一个数据源,后来来源一多,就开始出现:
- `if file_name == ...`
- `if source == ...`
- `if date_col in ...`
最后脚本越来越像补丁堆。
更稳的方式通常是:
- 规则配置化
- 字段映射独立出来
- 清洗步骤做成函数化流程
哪怕项目不大,只要把这一步做好,脚本寿命都会长很多。
一个更适合中小项目的处理顺序
如果你要做一批 CSV 清洗,我更建议按这个顺序:
- 先统一列名
- 再统一空值和格式
- 再做去重和业务规则
- 最后输出清洗结果和异常文件
这个顺序最大的好处是,后面每一层都建立在更稳定的数据结构上。
结语
Python 做 CSV 清洗真正容易失控的,不是规则写不出来,而是数据基础结构太乱。只要先把字段、空值和格式统一好,后面很多规则都会自然变简单。
对中小型自动化任务来说,先整理数据骨架,再谈业务细节,往往是最省力的做法。


钱哆哆♥官方正规流量卡♥1 个月前
生死门虽繁星灿烂,但活着的人才是最重要。
钱哆哆♥官方正规流量卡♥1 个月前
《技术博客图文文章怎么做得不单一:封面、结构图与场景插图的组合方法》已更新:技术博客图文文章怎么做得不单一:封面、结构图与场景插图的组合方法 很多技术博客的正文其实不差,问题常常出在视觉层太单一。首页列表里大家都只有一张封面,点进去以后又是一大段连续文字,读者很难在几秒钟内判断这篇文章到底值不值得继续看。内容本身也许很扎实,但呈现方式没有把价值推出来。…
钱哆哆♥官方正规流量卡♥1 个月前
《技术博客图文文章怎么做得不单一:封面、结构图与场景插图的组合方法》已更新:技术博客图文文章怎么做得不单一:封面、结构图与场景插图的组合方法 很多技术博客的正文其实不差,问题常常出在视觉层太单一。首页列表里大家都只有一张封面,点进去以后又是一大段连续文字,读者很难在几秒钟内判断这篇文章到底值不值得继续看。内容本身也许很扎实,但呈现方式没有把价值推出来。…
钱哆哆♥官方正规流量卡♥1 个月前
《技术博客图文文章怎么做得不单一:封面、结构图与场景插图的组合方法》已更新:技术博客图文文章怎么做得不单一:封面、结构图与场景插图的组合方法 很多技术博客的正文其实不差,问题常常出在视觉层太单一。首页列表里大家都只有一张封面,点进去以后又是一大段连续文字,读者很难在几秒钟内判断这篇文章到底值不值得继续看。内容本身也许很扎实,但呈现方式没有把价值推出来。…
钱哆哆♥官方正规流量卡♥1 个月前
你和学霸的区别就是,你所有的灵光一闪,都是他的基本题型。