CSV 数据质量怎么检查?字段类型、空值、唯一率和异常值分析指南
说明如何给 CSV 每一列建立字段画像,检查空值、唯一值、重复值、混合类型、异常空格、日期范围和公式注入风险。
打开配套工具 →一份 CSV 能正常打开,不代表它适合导入 ERP、广告后台、邮件系统或数据库。订单号被识别成数字后丢掉前导零,日期列混入一句 not-a-date,邮箱列夹着空格,金额列出现货币符号,这些问题往往要到导入失败或报表对不上时才暴露。
可以使用 CSV 列分析与数据质量检查器 在浏览器本地分析每个字段的空值、唯一率、重复值、推断类型、最值、常见值、首尾空格和公式风险。它不会修改原文件,适合先做体检,再决定清洗规则。
字段画像是什么
字段画像不是给整张表打一个模糊分数,而是为每一列回答一组具体问题:
- 总共有多少行,非空和空值各多少;
- 有多少个不同值,重复出现多少次;
- 看起来主要是数字、日期、邮箱、URL 还是文本;
- 数字的最小值、最大值和平均值是多少;
- 文本长度是否突然异常;
- 哪些值出现最多;
- 是否存在首尾空格或危险的公式开头。
这些信息不能直接判断业务数据对错,但能快速指出值得检查的列。
空值率要结合字段用途
订单号、SKU、数量和交易日期通常属于关键字段,空值很可能阻止后续处理。备注、地址第二行和可选税号可以合理为空。
所以“完整率 100%”不是所有列的共同目标。更好的做法是先把字段分成:
- 必填主键,例如订单行 ID。
- 业务必填,例如数量和币种。
- 条件必填,例如企业客户税号。
- 可选信息,例如内部备注。
同样是 5% 空值,出现在订单号和备注列上的风险完全不同。
唯一率可以帮助发现主键问题
如果订单号字段应该一行一个订单,唯一率却只有 60%,可能是文件实际包含订单商品明细,也可能存在重复导出。不能看到重复就立即删除。
客户邮箱、国家代码和订单状态本来就会重复。它们的低唯一率没有问题,反而可以通过常见值分布了解客户集中度和状态分布。
判断某列是否适合作为唯一键时,应同时检查:
- 空值是否为零;
- 唯一率是否接近 100%;
- 字段是否稳定,不会被用户修改;
- 是否需要和其他列组成组合键。
类型推断为什么只能当提示
00123 看起来像整数,但它可能是邮编、SKU 或客户编号,转换成数字后会变成 123。电话号码也可能带 +、空格和前导零,不应直接按数值处理。
类型推断适合发现“同一列大部分是日期,少数却是文本”这类异常。真正导入数据库前,字段类型应由业务定义,而不是只看样本长相。
常见的混合类型问题包括:
- 金额列同时出现
129.90、$129.90和N/A; - 日期列同时出现
2026-07-01、07/01/2026和自然语言; - 布尔列同时出现
yes/no、true/false和1/0; - 数量列混入单位,例如
12 pcs。
CSV 引号和换行不能用简单 split 处理
RFC 4180 记录了常见 CSV 结构:字段可由双引号包裹,字段内部可以包含逗号、双引号和换行。双引号本身通常用两个连续双引号表示。
如果程序只是按每一行 split(','),遇到地址、备注或产品标题里的逗号就会错列。字段画像的前提是先正确解析文件结构;因此导入后应先看前几行预览,确认表头和列数没有偏移。
首尾空格为什么难发现
SKU-100 和 SKU-100 在页面上几乎一样,但严格比较时是两个不同值。它会导致查重失败、VLOOKUP 匹配不到、系统创建重复客户。
清理首尾空格通常安全,但不要盲目删除文本中间的空格。人名、地址和商品标题里的空格可能有意义。更稳妥的流程是先统计受影响数量,再只对明确字段应用 trim。
CSV 公式注入风险
外部数据如果以 =、+、- 或 @ 等字符开头,电子表格软件可能把单元格当成公式。用户留言、商品标题、导入邮箱和网页抓取数据都可能包含这些内容。
发现公式风险不代表内容一定恶意。负数和合法公式也可能被标记。关键是明确文件会不会被 Excel 等软件直接打开,以及数据来源是否可信。导出外部数据时,常见保护方法是在危险开头前加单引号,让软件按文本显示。
建议的数据质量处理顺序
- 保存未经修改的原始文件。
- 确认编码、分隔符、表头和列数。
- 查看字段画像,标记关键列。
- 先处理结构问题,再处理内容问题。
- 统一日期、金额、国家代码和布尔值格式。
- 清理明确的首尾空格。
- 定义单列或组合唯一键后再去重。
- 导出清洗结果,并重新做一次字段画像。
- 抽查原始行与结果行,确认没有误删或改义。
字段画像的价值不是自动替你修正所有数据,而是把“这张表好像有点乱”变成一组可以量化、可以逐项验证的问题。