问: 数据治理项目里,"数据清洗"这个词出现的频率最高。但具体洗什么、怎么洗、洗到什么程度算干净,很少有人说得清楚。
答: 数据清洗的核心工作是处理三类数据问题------缺失值、异常值、重复值。 把这三类问题处理干净,数据质量就能从"不可用"提升到"可用"。
一、三类核心问题
问题一:缺失值
某个字段没有数据,就是缺失。比如物料主数据里的"重量"字段有30%是空的。
处理方式:
如果字段不重要或业务用不上→直接忽略
如果有业务默认值→用默认值填充(如"重量未知"→填0)
如果可以根据其他字段推算→用推算值填充(如根据"体积×密度"推算重量)
如果以上都不行→标记为"缺失",数据分析时排除这些记录
问题二:异常值
数据有值,但值明显不合理。比如温度字段出现999℃、年龄字段出现-5岁、单价出现0元。
识别方式:
看取值范围------温度不可能超过200℃(普通工业场景)
看统计分布------3倍标准差以外的值通常算异常
看业务规则------订单金额不能为负数
处理方式:
确认是数据录入错误→修正为正确值(能确认的情况下)
确认是传感器故障→剔除该条记录
确认是真实值但罕见→标记为"异常"保留,分析时单独处理
问题三:重复值
同一条数据在系统里出现了多次。同一个物料编码对应两条记录、同一个客户ID对应三个不同的地址。
处理方式:
先判断哪个是"主记录"(通常以最新更新的或信息最完整的为准)
合并信息------取A记录的名字+B记录的地址+C记录的联系人
标记其他记录为"重复"并归档,不再参与数据分析
二、数据清洗"做多少才算够"
数据清洗不需要追求100%完美。以下是行业通用的可接受标准:
|--------------|---------------------|--------------------|
| 质量维度 | 可接受标准 | 说明 |
| 缺失率 | 核心字段<5%,非核心字段<20% | 核心字段缺失超过5%会影响分析准确性 |
| 异常值占比 | <2% | 超过2%说明数据采集环节可能有问题 |
| 重复率 | <1% | 超过1%会影响统计类查询的准确性 |
如果数据质量达到以上标准,就可以支撑AI问答和数据分析。达不到的,先做清洗再接入AI。
三、清洗的原则
原则一:清洗前先备份原始数据
清洗操作不可逆。万一洗错了(比如把正常值误判为异常剔除了),需要有原始数据可以恢复。
原则二:业务规则由业务部门定
"温度超过多少算异常""空值用什么填充"------这些判断只能由业务部门定。IT部门负责执行,不负责定义业务规则。业务部门不参与的数据清洗,大概率会洗错。
原则三:清洗规则要能重复执行
数据清洗不是一次性工作。每次新增数据都要跑清洗规则。把清洗规则写成可重复执行的脚本(SQL脚本或Python脚本),每次增量数据进来自动跑一遍。
原则四:清洗历史可追溯
每一条被清洗的数据都要有记录------清洗前是什么、清洗后是什么、为什么洗、谁批准的。审计时能够追溯。
FAQ
Q:数据清洗做一次要多久?
A:取决于数据量。10万条记录的数据集,主要是缺失值和重复值处理,一个数据工程师1-2周可以完成。如果涉及复杂业务规则判断和跨系统数据比对,时间会翻倍。
Q:清洗后的数据怎么验证质量?
A:随机抽样。清洗完成后随机抽取100条记录,人工核验清洗结果是否正确。如果正确率低于95%,说明清洗规则有误,需要复查和调整规则。
一句话总结: 数据清洗的核心是处理缺失值、异常值、重复值三类问题。不需要追求100%完美,核心字段缺失率<5%、异常值<2%、重复率<1%就足够支撑AI应用。业务部门定规则,IT部门执行,清洗规则可重复、可追溯。