用 AI 清洗数据:别急着删除异常值,先保住原始记录和业务口径
数据整齐不等于数据可信。本文讲清如何用 AI 做画像、缺失处理、去重、异常识别和格式统一,同时保留原始事实与验证证据,并附发布前检查清单。
一份客户表有十二万行:手机号格式不一,城市名称有简称,金额列混着“未知”和空白,还有几百个看起来特别大的订单。把文件交给 AI,它很快建议删除空值、统一格式、去掉异常值。十分钟后表格整齐了,团队却发现大客户订单被当成离群点删掉,同名的两个人也被合并成了一个。
数据清洗不是把表格变得好看,而是把原始记录转换成适合特定用途、能解释、能复现的数据。AI 可以帮助发现模式和生成规则,但每一次修改都在改变事实的表达。先保住原始数据和业务口径,才谈得上自动化。
先定义“干净”是为了什么
同一份数据用于发货、财务结算和趋势分析时,清洗标准可能完全不同。发货地址缺少门牌号会阻断配送,趋势分析却可能只需要城市;财务金额必须逐笔对账,模型训练可能允许在明确条件下填补缺失值。开始前写清使用者、决策、时间范围、关键字段和允许误差。
| 数据问题 | 看似省事的处理 | 更稳妥的做法 |
|---|---|---|
| 字段为空 | 全部填 0 | 区分未知、不适用、尚未采集和真实为零 |
| 重复记录 | 按姓名去重 | 定义业务身份键并保留合并证据 |
| 极端数值 | 超阈值删除 | 先核对单位、来源和真实业务事件 |
| 格式不一 | 直接覆盖原列 | 新增标准化列并保留原值 |
| 类别混乱 | 让 AI 自动归类 | 建立映射表、置信度和人工复核队列 |
永远保留不可变的原始层
原始文件只读保存,记录来源、获取时间、版本、编码和校验值。清洗结果写入新的层,并为每条规则保留版本。这样发现规则错误时可以重跑,也能回答“这个值原来是什么、为什么变成现在这样”。直接在唯一副本上查找替换,是最难恢复的清洗方式。

先做数据画像,不要先改数据
统计每列的数据类型、空值率、唯一值数量、最小最大值、常见分布和格式样例,并按时间、渠道、地区或来源分组比较。整体 2% 的缺失率可能看似正常,但若全部集中在某一天,就可能是采集故障。AI 适合总结这些结果,却不应凭几行样例推断整张表。
缺失值不是同一种“没有”
空白可能代表用户没填、系统没采集、该字段不适用、解析失败或数据被脱敏。把它们统一填成 0,会让“没有收入”和“收入未知”无法区分。先为缺失原因建立编码;需要填补时,说明方法、适用范围和不确定性,并保留一个字段标记该值是否经过推算。
重复数据先定义“同一个”
姓名相同不代表同一个人,邮箱不同也可能属于同一客户。去重规则应由业务身份决定,例如稳定客户编号、订单号加商品行号,或经过验证的字段组合。模糊匹配可以生成候选对,但不能无声合并。对高价值记录保留人工确认,并记录哪几条被合并、主记录如何选择。
异常值可能正是最重要的信息
异常可能来自录入错误、单位错误、重复计算,也可能是真实的大额订单、促销峰值或欺诈信号。先检查原始凭证、上下游系统和同一对象的历史记录,再决定修正、隔离还是保留。若分析方法容易被极端值影响,可以采用稳健统计或单独分层,不必删除事实。
格式统一要处理语义而非外观
日期“03/04/26”到底是 3 月 4 日还是 4 月 3 日,不能只靠格式化解决。金额要同时确认币种和税费口径,重量要确认千克还是克,电话号码要区分国家地区。标准化应保存原值、解析结果、解析规则和失败原因;无法确定的记录进入待处理队列。
类别映射需要一本词典
“北京”“北京市”“BJ”可以映射到同一标准值,但“华东大区”与行政区并不是一个层级。建立受版本控制的映射表,包括原值、标准值、生效时间、依据和维护人。AI 可提出相似项,低置信度和新类别必须人工确认,不能强行塞进最接近的分类。
关联多张表时先检查粒度
客户表一行一个客户,订单表一行一个订单,订单明细又是一行一个商品。直接连接后,客户金额可能因一对多关系被重复累计。合并前写清每张表“一行代表什么”、连接键是否唯一、未匹配和一对多各有多少,再用已知总额对账。
实用提醒:数据能成功 Join 不代表 Join 正确。行数突然增加、减少或金额翻倍,往往是在提醒粒度出了问题。
规则执行顺序也会改变结果
先去重再补字段,和先补字段再去重,得到的记录可能不同。把清洗过程写成有顺序的管道,每一步输入输出都有行数、关键指标和错误记录。规则应尽量幂等:同一份结果再执行一次,不应继续改变数据。
敏感信息不要随手交给公共 AI
姓名、手机号、证件号、地址、医疗和交易记录都可能受隐私与合规要求约束。优先只提供字段结构、匿名样例和统计摘要;确需处理真实数据时,使用组织批准的环境、最小权限和明确保留策略。简单遮住姓名并不一定匿名,多个字段组合仍可能识别个人。

如何验证清洗没有改坏事实
| 验证方式 | 重点问题 |
|---|---|
| 数量核对 | 每步新增、删除、隔离多少行,是否符合预期 |
| 金额对账 | 总额、分组小计与可信来源是否一致 |
| 约束检查 | 主键唯一、必填、范围和引用关系是否成立 |
| 分层抽样 | 常见、边界、失败和高价值记录是否正确 |
| 前后分布 | 清洗是否意外改变时间、地区或用户结构 |
| 下游试跑 | 报表、模型或业务流程能否得到预期结果 |
让 AI 输出规则,不要直接输出“正确数据”
比起让 AI 返回一份改好的大表,更可靠的方式是让它生成候选规则、SQL 或脚本,并附适用条件、可能误伤和验证查询。规则经过小样本审核后,在可控环境批量执行。对文本分类等概率任务,保存置信度和模型版本,给低置信结果留出人工通道。
推荐的清洗流程
- 冻结原始数据,登记来源、版本和权限。
- 定义用途、数据粒度、关键字段和质量门槛。
- 生成画像,找缺失、重复、异常、格式和关联问题。
- 让 AI 提出候选规则与反例,不直接覆盖数据。
- 在副本上按顺序执行,保存变更日志和失败记录。
- 做约束检查、分层抽样、总额对账和下游试跑。
- 由业务负责人批准,再发布带版本的数据集。
可直接使用的提示词
“你是数据质量分析助手。以下仅为脱敏字段说明、统计画像和编号样例。先解释每列粒度、口径与潜在敏感性,列出缺失、重复、异常、格式、类别和关联风险。不得自行删除记录或猜测未知值。对每条候选清洗规则写适用条件、误伤场景、执行顺序、可逆方式、失败队列和验证查询;原值与标准值必须同时保留。信息不足时输出待确认问题。”
发布数据前检查清单
- 原始数据是否只读保存且可重新获取?
- “一行代表什么”和关键业务口径是否明确?
- 空值、零值、不适用和解析失败是否分开?
- 去重、异常和类别映射是否有业务依据?
- 每步变化是否记录,规则是否可重复执行?
- 数量、总额、约束、抽样和下游结果是否验证?
- 敏感数据是否使用批准环境和最小权限?
清洗的价值不在于把所有格子填满,而在于让数据的含义稳定、问题可见、变化可追溯。AI 可以加速画像、写规则和找反例,最终是否可信,仍取决于业务定义、验证证据和对原始事实的敬畏。
本文为读懂 AI 原创内容。处理个人信息、客户数据和业务机密时,请遵守适用的隐私、授权、保留与审计制度;重要数据集应由数据负责人和业务负责人共同验收。