数据清洗第一步:先搞清你的数据到底脏在哪

很多团队拿到数据后的第一反应是马上动手清洗——补空值、去重复、改格式,干得热火朝天。但这恰恰是最容易踩坑的做法。清洗之前如果不先做诊断,你连数据脏在哪、有多脏、脏的是什么类型都搞不清楚,结果就是:该修的没修,不该删的删了,做完才发现根本没解决问题,只能返工。清洗的第一步不是动手,而是诊断。这篇文章就来系统讲讲怎么给数据做全面体检。
一、为什么先诊断再清洗
很多人觉得诊断浪费时间,不如直接开干。但跳过诊断直接清洗,至少会带来三个严重后果。
第一个后果:误删有效数据。 你看到某个字段有很多空值,直接把整列删掉,结果那些空值其实是隐式缺失,本身是有业务含义的。比如在档案数字化项目里,“备注”字段空着不代表数据不完整,可能意味着这条记录确实没有备注。不看诊断结果就动手,很可能把有效数据当成脏数据清理掉。
第二个后果:清洗效果无法衡量。 清洗完之后老板问一句“数据质量提升了多少”,你答不上来。因为清洗之前没有记录脏数据的基线状态,没有量化脏数据的类型和占比,自然说不清楚清洗到底解决了多少问题。没有诊断报告的清洗,汇报时只能靠“感觉好多了”这种主观描述,完全不具备说服力。
第三个后果:反复返工。 没有诊断就没有规划,今天发现日期格式不统一,改一遍;明天发现人名有重复,再改一遍;后天发现编码乱码,又来一遍。每次清洗都是打补丁,改着改着发现之前改的又跟新规则冲突了。如果一开始就做好诊断,把所有问题的类型、范围、分布摸清楚,完全可以统筹安排、一次到位。
简单说,诊断就是给数据拍一张 X 光片。先看清问题在哪,再决定怎么治,这是任何数据清洗项目的铁律。
二、脏数据的八大类型
要诊断脏数据,首先得知道脏数据长什么样。实际项目中,脏数据大致可以分成八大类型,每种都有典型的表现和危害。
1. 缺失
最常见也最容易被忽视的脏数据类型,分为显式缺失和隐式缺失两种。
显式缺失就是字段为空值或 NULL,一眼能看出来。隐式缺失则更隐蔽——字段有值,但值本身没有实际含义。比如“待定”“暂无”“未知”“N/A”“无”这些占位符,看起来字段是填了的,实际上跟空值没有本质区别。在档案著录项目中,“责任者”字段填“待定”的情况非常普遍,不做诊断你以为这个字段完整率很高,实际上一半以上都是无效值。
2. 重复
重复数据分完全重复和近似重复两种。
完全重复是所有字段一模一样的记录,好发现也好处理。麻烦的是近似重复——核心信息相同但细节有差异。比如同一条档案被著录了两次,题名一样,但一个用了全角括号一个用了半角括号,或者一个写了“北京市”一个写了“北京巿”。“市”和“巿”是两个不同的字,肉眼很容易忽略。这种重复靠简单去重根本发现不了,得靠字段比对和相似度算法才能揪出来。
3. 不一致
同一个字段,值有多种写法。这是数据整合阶段最让人头疼的问题。
典型表现:日期字段里有“2024-01-15”“2024/1/15”“20240115”“2024 年 1 月 15 日”四种格式混在一起;单位字段里有“kg”“千克”“公斤”三种写法;机构名称有的用全称“北京大学”有的用简称“北大”。不一致不算严格意义上的错误,但如果不做标准化,检索会漏数据、统计会出偏差、系统间对接会报错。
4. 错误
数据值本身不对,包括拼写错误、逻辑错误和张冠李戴。
拼写错误比如把“朝阳区”写成“潮阳区”。逻辑错误比如某条记录的结束日期早于开始日期,或者某人的出生年份早于其身份证上的出生年份。张冠李戴则是字段对应关系搞错了,比如把作者张三的简介写到了作者李四的记录里。这类错误往往需要业务知识才能发现,纯靠技术规则很难全部覆盖。
5. 异常
数据值在格式上没问题,但超出合理范围。比如一份人事档案里某人的年龄是 189 岁,或者某本图书的页数标注为 0。异常值不一定是错误,但必须标记出来人工核实,不能直接删掉也不能直接保留。
6. 格式问题
格式层面的脏数据,包括全角半角混用、数据类型错乱和编码乱码。
全角半角混用:数字和字母在全角和半角之间跳来跳去,“123”和“123”在程序眼里是两个完全不同的值。类型错乱:本该是数字的字段存了文本,本该是日期的字段存了数字。编码乱码:最典型的是中文乱码,GBK 和 UTF-8 之间转换出错导致一堆问号或方块字符,数据完全不可读。
7. 过时数据
数据本身没错,但已经失效了,却还留在系统里被当作有效数据使用。比如一个客户联系人早就换了单位,但联系方式还停在旧记录里;一份档案的保管期限已到期但没有标注销毁状态。过时数据不会报错,但会导致分析结果误导决策。
8. 引用断裂
关联字段对不上。比如订单表里指向客户编号 C1024,但客户表里根本没有这个编号;档案目录里引用了某份全宗,但全宗表里查不到。引用断裂在单表数据里看不出来,只有做跨表关联时才会暴露,危害极大——可能导致报表数据空洞、检索结果断链、系统级联查询崩溃。
三、怎么发现脏数据:一套自检方法
知道了脏数据的类型,接下来就是怎么把它们找出来。以下五种方法组合使用,能覆盖绝大多数脏数据问题。
1. 抽样人工检查
从数据中随机抽取一定比例的记录,由熟悉业务的人逐条检查。这是最原始的方法——有些脏数据靠规则和算法根本发现不了,只有人看了才知道不对劲。
操作上建议:随机抽取 200 到 500 条记录,覆盖所有核心字段,由至少两位业务人员独立检查并记录问题类型。抽样检查的目标是建立对数据质量的整体直觉,为后续检查提供方向。
2. 字段值域分析
对每个字段做值域统计,看字段里到底有哪些值、每个值出现多少次。这一步能快速发现不一致和异常。
具体操作:列出每个字段的唯一值列表和频次分布。对于枚举类字段(如性别、密级、保管期限),看是否有非标准值混入;对于数值类字段(如页数、金额),看最大值和最小值是否合理;对于文本类字段,看字段长度的分布是否异常。
3. 统计特征检查
对数值型字段做基本统计量计算,包括均值、中位数、标准差和分位数。通过统计特征可以快速定位异常值。
比如某个金额字段的均值是 5000,但最大值达到了 980000,这个最大值就需要重点排查。标准差过大说明数据波动剧烈,可能混入了不同类型的数据。统计特征检查的关键不是算出数字,而是对每个异常数字追问一个“为什么”。
4. 交叉字段逻辑校验
检查字段之间的逻辑关系是否成立。这类脏数据单字段看不出来,必须跨字段比对。
比如:结束日期必须大于等于开始日期;出版年份不能大于当前年份;密级为“公开”的档案不能出现涉密关键词。把这些业务逻辑写成校验规则,批量跑一遍,就能揪出大量逻辑矛盾的数据。
5. 与外部数据比对
把你的数据跟权威的外部数据源比对,发现不一致和错误。比如人名跟身份证库比对,机构名跟工商登记库比对,ISBN 跟出版物数据库比对。这一步能发现拼写错误和张冠李戴这类内部规则难以发现的问题。条件允许的话,外部比对是诊断数据质量最有效的方法之一。
四、诊断结果怎么用:输出数据体检报告
诊断不是目的,诊断的结果要用起来。核心产出物是一份“数据体检报告”。
报告至少要包含三部分内容:
第一部分:脏数据分布。 逐字段列出每个字段存在哪些类型的脏数据,脏数据占比是多少。比如“责任者字段:缺失率 42%,其中隐式缺失占 68%;重复率 7%”。
第二部分:类型占比。 汇总八大类型的脏数据各占多少比例,让你一眼看出最大的问题是缺失还是重复还是不一致。
第三部分:影响范围。 每类脏数据影响了哪些下游环节。比如“引用断裂问题将导致报表统计缺漏约 15% 的记录”“日期格式不一致导致检索召回率下降 8%”。
有了这份报告,你就可以据此制定清洗方案——哪些问题优先处理、用哪些方法、需要多少人力和工期。清洗完成后,再出一份同样的报告做对比,清洗效果一目了然。
五、附一份数据体检自检清单
以下清单可直接照着排查,逐项过一遍基本能摸清数据到底脏在哪:
- 缺失检查:每个字段的空值率是多少?有没有“待定”“暂无”“未知”等隐式缺失?
- 重复检查:完全重复记录有多少?近似重复记录怎么发现?
- 一致性检查:日期格式统一吗?单位写法统一吗?名称用全称还是简称?
- 错误检查:有没有明显的拼写错误?有没有逻辑矛盾?有没有张冠李戴?
- 异常检查:数值字段的最大值和最小值合理吗?有没有极端值需要核实?
- 格式检查:全角半角混用了吗?字段类型对不对?有没有编码乱码?
- 时效检查:有没有已失效但未标注的数据?保管期限到期的记录有没有标记?
- 引用检查:关联字段能不能对上?有没有指向不存在的记录?
总结
一句话总结:数据清洗的第一步不是动手,而是诊断——先搞清脏数据的类型、分布和影响范围,再对症下药,才能避免误删、返工和无效劳动。
关于我们
本文由 北京海天雷鹰科技有限公司 整理发布。
公司成立于 2001 年,专注档案整理与数字化、试题结构化录入、期刊校对、数据标注等一站式数据服务 20 余年。针对标准文档形近字符识别、复杂公式排版、多层级档案规整、题库结构化加工等行业难点形成成熟作业方案,适配科研院所、教育机构、企事业单位的批量数据处理需求。
累计完成数十万份专业文档数字化、题库结构化加工项目,服务过多家科研机构、院校及企事业单位。核心团队 20 年以上行业经验,建立多层级质检审核机制,数据成果准确率稳定可控;持有 ISO 9001/27001 等体系认证、多项自主软件著作权、企业信用 AAA 等级。
如果您有档案数字化、试题录入、数据标注方面的需求,欢迎联系我们:
- 电话:010-84907553
- 邮箱:736232918@qq.com
- 官网:www.beijingocr.com
本文为原创科普内容,如需转载请注明出处。关注我们,持续分享数据服务行业的实战经验与行业洞察。
