跳到工具
ViewCSV
无需上传文件

CSV 数据清洗

signups.csv· 示例数据7 行 · 6 列
单元格值
包括控制字符、零宽空格和混入的字节顺序标记(BOM)。制表符和换行会保留。
让作为一个字符输入的 é 与 e 加重音符组合输入的 é 变得相同,从而能正确匹配和去重。
应用到列
不选择即为所有列。
行和列
保留
修改的值:2 · 删除的空行:1 · 删除的重复行:1
结果
#idnameemailagesignup_dateplan
11伟 王first@example.test342026-01-04pro
22芳 李not-an-emailthirty2026-02-30Pro
33娜 张third@example.test·2026-03-11free
45静 陈N/A5111/03/2026team
56磊 杨sixth@example.test272026-04-01enterprise

输入:7 行。结果:5 行 · 6 列。

打开或粘贴 CSV 文件,清洗结果会显示在选项旁边。默认情况下,工具会去除每个值的首尾空格、删除空行,并删除所有列都相同的重复行(保留第一行)。还可以按需开启更多步骤,例如清空 NULL 和 N/A、删除不可见字符,或按邮箱列去重;结果上方的提示会统计修改了什么。表头行永远不会被改动。文件在你的浏览器中处理,不会上传。

如何清洗 CSV 文件

  1. 打开 .csv、.tsv 或 .txt 文件,拖到工具上,或粘贴数据。分隔符以及 UTF-8、UTF-16 的字节顺序标记(BOM)会自动识别;如需其他分隔符或旧编码(如 GBK 文件选 GB18030),请在 导入设置 中选择。
  2. 在 单元格值 下选择要对单元格做的修正。用 应用到列 可以只处理部分列;一列都不选就是处理所有列。
  3. 在 行和列 下选择如何处理空行、重复项和空列。
  4. 查看结果上方的提示,并与 输入 标签页对照,然后点击 下载 CSV、复制 或 在编辑器中打开。

数据清洗干净后,可以用 CSV 校验 按列规则检查,或用 CSV 格式调整 更改分隔符和引号方式。

各步骤的作用及执行顺序

每个值都会按下面的固定顺序经过已开启的步骤,所以无论你以什么顺序勾选选项,结果都一样。

Unicode 规范化(NFC)让作为一个字符输入的 é 与 e 加组合重音符输入的写法变成相同的文本,从而能正确匹配和去重。默认关闭。
删除不可见字符删除控制字符、零宽空格和零宽连接符、单词连接符,以及混入的字节顺序标记(BOM)。制表符和换行会保留。默认关闭;如果数据中有 emoji 组合序列,或使用依赖零宽连接符的文字,请保持关闭。
视为空值的内容用逗号分隔的列表,例如 NULL, N/A, -。值(忽略两侧空格后)与其中任一项相同时,会被清空。匹配区分大小写,如果 null 和 NULL 都出现,需要分别列出。默认为空。
去除首尾空格删除开头和结尾的空白,包括两端的不换行空格和换行。默认开启。
合并值内的连续空格把两个或更多连续的空格、制表符、不换行空格或全角空格合并为一个空格。不处理换行。默认关闭。
大小写保持不变、转为小写、转为大写 或 单词首字母大写。单词首字母大写会先把整个值转为小写,再把空格、连字符、斜杠或左括号后的第一个字母大写,所以 MCDONALD 会变成 Mcdonald,o'neil 会变成 O'neil。
值内的换行保留,或选择 替换为空格,把每个换行及其两侧的空格替换为一个空格。

处理完值之后,再处理行和列:删除空行 会删除所有单元格都为空或只有空格的行;重复项 比较的是清洗后的值;删除完全为空的列 最后执行。删除行和列时始终检查所有列,不受 应用到列 的限制。

删除重复行

  • 默认选项是 删除所有列都相同的行。经过上面的单元格步骤之后,各值必须完全相同才算重复。
  • 删除所选列值相同的行 只要所选关键列相同就视为重复,例如 email,或 first_name + last_name + zip。其他列可以不同。
  • 保留 决定留下哪一行:首次出现的行,或 最后出现的行(保留在最后那一行原来的位置)。
  • 比较时忽略大小写和首尾空格 会把 ANA@example.com 和 ana@example.com 视为同一个键。这个选项不会改动被保留行的文本。
  • 选择 保留所有行 即可关闭去重。

按关键列去重之前,如果希望保留某一特定行(例如最新的一行),请先用 CSV 排序 把它排到前面。

哪些内容永远不会改动

  • 表头行保持原样;除了删除空列之外,列的顺序不会变化。如果所有列都是空的,则一列也不删除。
  • 值不会被转换:除了你开启的步骤,00731、1e5 和 03/04/2024 都按原文本保留。
  • 值内被引号括起的分隔符和换行按 RFC 4180 读取,写回时也加上引号(除非你选择替换换行)。
  • 空白表头会写成 Column 3,重复表头写成 name (2)。比表头短的行会用空值补齐。
  • 下载的文件保留原有的分隔符、换行符和末尾换行;编码为 UTF-8(带或不带 BOM)、UTF-16 LE 或 Windows-1252 时也保持原编码,其他编码(包括 GB18030)会保存为 UTF-8。

常见问题排查

  • 想保留的行不见了。 去重默认是开启的。请在 重复项 下选择 保留所有行,或关闭 删除空行。
  • 看起来一样的重复行没有被删掉。 它们在大小写、值内空格、重音的两种输入方式或不可见字符上有差别。请开启 比较时忽略大小写和首尾空格、合并值内的连续空格、Unicode 规范化(NFC) 或 删除不可见字符。
  • 首字母大写把姓名或编码弄乱了。 用 应用到列 限定范围,例如只处理姓名列,这样邮箱和商品编码就能保持原来的大小写。
  • 小写的 n/a 没有被清空。 这个列表区分大小写;请在 N/A 旁边再加上 n/a。

限制与隐私

文件最大 25 MB、10 万行、250 列和 200 万个单元格。更大的文件请先用 拆分 CSV 拆开;注意这样只能在每一份内部找出重复行。

清洗在你的浏览器中进行,CSV 文件不会上传到服务器。

示例

清洗一份联系人列表:使用默认的去除首尾空格和删除空行,另外开启 合并值内的连续空格,把 视为空值的内容 设为 N/A, NULL,并按 email 列去重、开启 比较时忽略大小写和首尾空格。提示显示修改了 5 个值,删除了 1 个空行和 1 个重复行。第二条 Ana 记录作为重复行被删除;第一条保留它自己的写法。

CSV
name,email,city
"  ana lopez ",ANA@example.com,Madrid
Ana Lopez,ana@example.com ,Madrid
Kim   Lee,kim@example.com,N/A
,,
Bao Nguyen,bao@example.com,NULL
清洗后的 CSV
name,email,city
ana lopez,ANA@example.com,Madrid
Kim Lee,kim@example.com,
Bao Nguyen,bao@example.com,

常见问题

怎样按某一列去重?

把 重复项 设为 删除所选列值相同的行,勾选这一列,再在 保留 下选择 首次出现的行 或 最后出现的行。

能在这里查找和替换文本吗?

不能。这个工具只执行固定的清洗步骤。要在所选单元格中查找和替换,请使用 CSV 编辑器。

清洗会改动数字或日期吗?

不会。所有值都按文本处理:工具不会重新格式化数字、日期或前导零。只有你开启的步骤才会修改值。

标准与参考资料