跳到主要内容

CSV 统计摘要怎么做: 几秒看清一份 CSV 数据概况

拿到一份陌生 CSV 不用先写 pandas。本文讲清楚 CSV 数据摘要要看哪几项: 每列填充、缺失、唯一值、最值和均值, 以及数据清洗第一步该怎么落地。

发布于 作者 李雷
#CSV #数据清洗 #数据分析 #表格工具

CSV 统计摘要怎么做: 几秒看清一份 CSV 数据概况

每次接手一份别人导出的 CSV, 我都不敢直接往系统里灌。先看一眼它到底长什么样, 哪列有空, 哪列数字范围离谱, 哪列本该唯一却重复了一堆, 这一步省下来的麻烦比想象中多。过去我会随手敲几行 pandas, 现在更常做的, 是把文件丢进一个本地工具, 几秒钟拿到一份每列的统计摘要。

一份 CSV 摘要应该看哪几项

所谓 CSV 统计摘要, 不是把数据画成花哨图表, 而是逐列给出几个最朴素的指标。对每一列, 你需要知道:

  • 填充值数量: 这列实际有多少格有内容。
  • 缺失数量: 多少格是空的。缺失多到一定比例, 这列基本不能直接用。
  • 唯一值数量: 不重复的取值有多少。这个数字最能暴露问题。
  • 推断类型: 这列大概是数字还是文本。
  • 数字列额外给出最小值、最大值、平均值。

文本列和数字列看的重点不一样。数字列我最先看最值和均值, 判断范围对不对; 文本列我先看唯一值数量, 判断它是分类字段还是自由文本。

唯一值数量是最被低估的一项

举个我常遇到的情况。一列叫 order_id 的字段, 按理说每行一个订单, 唯一值数量应该等于总行数。如果一份 5000 行的导出里, order_id 的唯一值只有 4980, 那就有 20 条重复, 后面去重、对账全得返工。反过来, 一列 status 本该只有「待付款、已付款、已退款」三四种取值, 如果唯一值数量是 11, 多半是有人手动填进了大小写不一致或者带空格的脏值。

唯一值数量一眼就能把这两类问题顶到你面前, 比你逐行翻表快得多。

一份真实 CSV 的摘要长什么样

假设有一份订单导出 orders.csv, 内容大致是:

order_id,customer,amount,city,paid_at
1001,张伟,128.50,北京,2026-06-01
1002,李娜,,上海,2026-06-01
1003,王芳,89.00,北京,
1004,张伟,256.00,Beijing,2026-06-02

跑一遍统计摘要, 输出大概是这样一份 Markdown:

| 列名 | 填充 | 缺失 | 唯一值 | 类型 | 最小 | 最大 | 平均 | | --- | --- | --- | --- | --- | --- | --- | --- | | order_id | 4 | 0 | 4 | 数字 | 1001 | 1004 | 1002.5 | | customer | 4 | 0 | 3 | 文本 | - | - | - | | amount | 3 | 1 | 3 | 数字 | 89.00 | 256.00 | 157.83 | | city | 4 | 0 | 3 | 文本 | - | - | - | | paid_at | 3 | 1 | 3 | 文本 | - | - | - |

读这张表只要十秒, 我就知道三件事: amount 有一格缺失, 平均值 157.83 元符合预期, 范围没异常; paid_at 缺了一条, 后面统计当日支付要小心; city 里「北京」和「Beijing」被算成了两个唯一值, 是个需要规范化的隐患。注意这里没有报告 city 的最值和均值, 因为它是文本列, 工具只对数字列算最小最大和平均, 对文本列就只统计唯一值, 这正是文本和数字该分开看的体现。

把它当成数据清洗第一步

我现在的习惯, 是把「看摘要」固定成清洗流程的第零步。还没决定怎么处理, 先让数据自己说哪里有问题:

  1. 看缺失列: 缺失比例高的列, 决定是补默认值还是直接丢。
  2. 看唯一值异常: 该唯一的不唯一, 去重; 该有限取值的取值过多, 去做表头和值的规范化。
  3. 看数字范围: 最值明显超出常识的, 多半是单位错或脏数据。

这套顺序走下来, 你对这份文件已经心里有数, 再动手清洗不会盲改。摘要本身是 Markdown, 我会直接复制进工单或交接说明, 接手的人不用打开原文件就知道大概情况。

不用写 pandas, 也不用上传文件

这件事最舒服的地方是不必为它专门写脚本。装环境、read_csv、再一列列 describe, 对一次性的快速检查来说太重了。直接用 CSV 统计摘要 粘贴或读取本地文件, 全程在浏览器里算, 文件不上传, 敏感的客户名和金额不会离开你的电脑。

看完摘要发现问题后, 下一步通常是规范化。如果像上面 city 那样取值不统一, 可以接着用 CSV 表头规范化 把列名和取值收拾干净, 再进入正式分析。先看清楚, 再动手, 这是我对待任何陌生数据集都不变的顺序。


Made by Toolora · Updated 2026-06-13