CSV 去重

CSV 去重,是指在 CSV 表格里按指定的一列或几列判断重复、删除重复行、只保留一条的操作,常用于客户名单按手机号去重、报名表去掉重复提交。本工具支持单列、多列或整行判重,可保留第一次或最后一次出现的记录,默认忽略首尾空格,按原文比较不会把长身份证号误判为相同,被删掉的行可单独导出核对。全程在浏览器本地完成,文件不上传。

拖入或选择一个 CSV 文件(.csv / .tsv / .txt,≤100MB),点击选择
文件不上传 · 浏览器本地去重 · 支持 .csv / .tsv / .txt · 单个文件 ≤100MB
去重参数
按哪几列判断重复

载入数据后在这里勾选:勾一列(如手机号)= 该列相同即重复;勾多列 = 这些列都相同才算重复;全选 = 整行完全相同才算重复。

保留哪一条
更多判重选项

这些选项只影响「怎样算相同」,导出的内容永远是原文,不会被去空格或改大小写。

输出设置

🔒 CSV 在你的浏览器内去重,未上传任何服务器;工具只读你的原文件,不会修改它。

如何使用CSV 去重

1

选择 CSV 文件或粘贴表格:拖入一个 .csv / .tsv / .txt(单个 ≤100MB),或切到「粘贴表格」直接粘贴从 Excel、WPS 复制的单元格。

2

确认编码与分隔符:文件卡片会写出识别到的编码、分隔符、列数和数据行数;识别不对就手动切到 GBK/GB18030、UTF-16 或换分隔符,没有表头的取消「首行为表头」。

3

勾选按哪几列判断重复:默认全选,即整行完全相同才算重复;只勾「手机号」就是手机号相同即算重复;勾「姓名 + 学号」就是两列都相同才算重复。下方会用一句话写出当前规则。

4

选择保留哪一条:保留第一条、保留最后一条(以最新提交为准),或只留不重复的(重复的行一条都不留);需要时展开「更多判重选项」忽略大小写、全部空格或全半角。

5

点「开始去重」:在独立线程里两遍扫描,可随时取消;完成后显示原多少行、保留多少行、删除多少行,以及重复最多的前 20 组。

6

下载去重结果:点「下载去重结果」得到 UTF-8 BOM 的 CSV,Excel 双击不乱码;有删除时还可以「下载被删除的重复行」逐条核对。

关于CSV 去重的常见问题

CSV 怎么按某一列去重,比如按手机号
载入文件后,在「按哪几列判断重复」里先点「全不选」,再只勾「手机号」那一列,点「开始去重」即可。手机号相同的行只保留第一次出现的那条,其它列(姓名、地址等)跟着整行一起保留或删除,不会被拆开。列名旁边会显示前几个样例值,方便确认勾对了列。
CSV 多列都相同才算重复,怎么设置
同时勾选这几列就行,例如勾「姓名」和「学号」:只有姓名和学号都一样的两行才算重复,同名不同学号的两个人会被都保留。全部勾选(默认)就是整行完全相同才算重复。勾选的先后顺序不影响结果。
CSV 去重能保留最后一条重复数据吗
能。把「保留哪一条」切到「保留最后一条」,每组重复只留最后一次出现的那行,适合报名表、问卷这类以最新一次提交为准的场景。保留下来的行仍在它原来的位置,整份结果的先后顺序与原文件一致,不会被重新排序。
Excel 去重为什么会误删 CSV 身份证号
CSV 用 Excel 打开时,18 位身份证号会被当成数字,而 Excel 只保留 15 位有效数字,后三位变成 0。于是 110101199001011234 和 110101199001011235 这两个不同的号码都显示成 110101199001011000,再点「删除重复值」就会把其中一个人删掉。本工具按 CSV 原文逐字比较,不做任何数字转换,不会出现这种误删。
CSV 去重前能先看看哪些行重复了吗
可以从三个地方核对:结果区列出重复最多的前 20 组和每组出现次数;「下载被删除的重复行」单独导出所有被删的行;在「输出设置」里勾选「追加重复次数列」,结果表末尾会多一列写明每行原本重复了几次。想先只看不删,可以把这三样下载下来再决定用不用去重结果。
CSV 去重时手机号为空的行会被删掉吗
默认不会。判重列全部为空的行不参与去重、全部原样保留,结果区会写明有多少行因此被保留;否则几百个没填手机号的客户会被合并成一行。如果你确实想把空值也当成一个值去重,在「更多判重选项」里勾选「空值也算重复」。多列判重时只要有一列不为空,就按正常规则比较。
CSV 去重后用 Excel 打开中文乱码怎么办
本工具输出统一是 UTF-8,并默认带 BOM,Excel、WPS 双击打开中文不会乱码。源文件是 GBK(记事本里叫 ANSI)也没关系,读入时自动识别并转成 UTF-8 再输出。如果文件卡片上提示疑似乱码,说明编码没认对,手动切到 GBK/GB18030 或 UTF-16 后重新去重。
xlsx 表格能直接用 CSV 去重工具处理吗
不能直接处理 .xlsx/.xls。请先用「Excel 转 CSV」把要去重的工作表转成 CSV,再拖进本页去重;去重完需要 Excel 格式,再用「CSV 转 Excel」转回去。转换和去重都在浏览器本地完成。
两个 CSV 文件之间能互相去重吗
暂不支持「A 表减去 B 表」这种跨文件比对。如果目的是把两份导出合在一起后去掉重复,可以先用「CSV 合并」把它们合成一个文件,再在本页按需要的列去重。模糊匹配(相似度去重)和数值归一(把 1.0 和 1 当成相同)目前也不支持。
CSV 去重工具手机上能用吗
能。用手机浏览器打开本页,点选择文件从手机的「文件」里挑 CSV,也可以把复制的表格内容粘贴进来,去重同样在手机本地完成。手机内存比电脑小,几十 MB 的大文件建议换电脑处理;在微信里打开时下载结果可能被拦截,可点右上角改用系统浏览器打开再下载。
CSV 去重会把文件上传到服务器吗
不会上传。文件读进浏览器内存后,在你本机的独立线程(Web Worker)里解码、解析、判重和生成结果,不经过任何服务器,关掉页面即清空。本地只记住保留策略、判重选项、输出分隔符这类参数偏好,不记文件名、文件内容和粘贴的内容。
超过 104 万行的大 CSV 文件能去重吗
能。Excel 一张工作表最多 1,048,576 行,超出的部分打开时就被丢掉了,在 Excel 里去重本身就不完整。本工具不经过 Excel,按单个文件 100MB 的上限处理,不设行数上限;去重在独立线程里进行,页面不会卡住,处理中可随时取消。

CSV 去重和 Excel 删除重复值有什么区别

为什么不直接用 Excel 的「删除重复值」?「数据 → 删除重复值」对普通表格够用,但 CSV 是纯文本,用 Excel 打开的那一刻就已经被「翻译」过一遍:长数字被截断、前导 0 被去掉,判重比的已经不是原来的内容了。下面是 CSV 去重最常见的几个坑。

Excel「删除重复值」与本工具 CSV 去重的对比
问题Excel 打开 CSV 后删除重复值本工具按原文去重
18 位身份证号、银行卡号只保留 15 位有效数字,110101199001011234 与 110101199001011235 都变成 110101199001011000,被当成重复误删按原文逐字比较,两个号码不相同、都保留
编号 001 与 1001 被转成数字 1,两行被判为重复001 与 1 是不同的文本,都保留
首尾多一个空格「张三」与「张三 」被当成两个值,删不干净默认忽略首尾空格判重,输出仍是原值
字段内换行(多行地址、备注)sort -u、记事本按物理行去重会把一条记录劈成几行按解析后的完整记录判重
超过 1,048,576 行超出部分打开时就被丢掉不受 Excel 行数限制,单个文件 ≤100MB
GBK 编码双击打开常见乱码自动识别 GBK,导出 UTF-8 BOM 不乱码

上表的身份证号是虚构的示例号码,只用来说明 15 位有效数字的截断效果。Excel 里避免这类身份证号去重被误删的办法,是导入时把该列设为「文本」,而本工具从头到尾都只当文本处理,不需要额外设置。

CSV 去重时怎样才算重复

先由勾选的判重列决定「比哪几列」,再由下面几个开关决定「怎样算相同」。这些开关只影响比较,导出的内容永远是原文:例如忽略首尾空格时「张三 」与「张三」算重复,但保留下来的那一行仍然写着「张三 」。

CSV 去重判重口径的效果
开关(默认)例子关闭时开启时
忽略首尾空格(开)「张三」与「张三 」不重复重复
忽略大小写(关)Abc@x.com 与 abc@X.com不重复重复
忽略全部空格(关)「张 三」与「张三」(含全角空格)不重复重复
全角半角视为相同(关)全角「ABC123」与「ABC123」不重复重复
空值也算重复(关)300 行手机号为空全部保留,不参与去重视为一组,只留 1 行
——(不提供)1.0 与 1、001 与 1不重复不提供数值归一

CSV 去重保留第一条、最后一条还是只留不重复的

「保留第一条」适合客户名单、订单导出这类以最早一条为准的去重;「保留最后一条」适合报名表、问卷的重复提交,以最新一次为准;「只留不重复的」会把所有出现过两次以上的行全部删掉,常用于找出只出现一次的记录。无论选哪种,结果都按原文件顺序输出,「原行数 = 保留行数 + 删除行数」始终成立,结果区的统计条就是这三个数。要做 csv 重复次数统计,就在「输出设置」里勾选追加「重复次数」列。

CSV 去重的几种叫法和英文说法

CSV 去重的常见叫法与在本页对应的操作
叫法在本页怎么做
CSV 去重 / CSV 文件去重 / 在线 CSV 去重载入文件,默认整行判重
CSV 按列去重 / CSV 按某一列去重只勾那一列
CSV 多列去重同时勾选几列,都相同才算重复
CSV 删除重复行 / CSV 去除重复数据 / CSV 重复数据删除开始去重后下载去重结果
表格按手机号去重 / 名单按手机号去重只勾手机号列,空号码默认保留
CSV 保留最后一条重复保留哪一条 → 保留最后一条
找出 CSV 重复行下载被删除的重复行,或看重复最多的前 20 组
大 CSV 文件去重单个文件 ≤100MB,不受 Excel 104 万行限制
CSV 去重不乱码输出 UTF-8 并带 BOM(默认)
TSV 去重自动识别制表符,输出 .tsv
Remove duplicates CSV online / CSV dedupe英文界面工具的叫法,同本页

英文语境下这类工具通常叫 CSV dedupe 或 remove duplicates CSV online,搜这两个词找到的都是同一件事。写代码的人更熟悉 Python pandas 的 drop_duplicates:参数 subset 对应本页勾选的判重列,keep='first' / 'last' / False 依次对应「保留第一条」「保留最后一条」「只留不重复的」。两边有两处口径不同:pandas 的 read_csv 默认会把 001 读成数字 1,要传 dtype=str 才按原文比较;它还会把空值当成彼此相同,几百行空手机号会被合并成一行,而本页默认让空值行原样保留。