简体中文

如何删除 CSV 中的重复行

将文件加载到 CSV Cleaner 中,首先修剪空白,然后删除重复的行。每行的第一次出现将被保留,后面的副本将被删除,因此保留的数据的顺序不会改变。

这两个步骤的顺序就是整个技巧。仅尾部空格不同的两行不会向计算机重复,因此在修剪之前进行重复数据删除会将两行保留在原位,然后报告工作完成情况。

为什么“相同”的行能够在重复数据删除中幸存下来

修剪直接解决第一个和最后一个问题。其他的需要你做出决定,这就是为什么它们没有默默地标准化的原因——例如,折叠大小写对于电子邮件地址是正确的,对于产品代码是错误的,并且工具无法区分哪一列是哪一列。

  • 尾随或前导空格。在电子表格中不可见,对比较具有决定性作用。
  • 大小写差异。 ann@example.com 和 Ann@example.com 是不同的字符串,即使它们是同一个邮箱。
  • 引用不同。 “Smith, John”和Smith\, John在解析之前可以携带相同的值和不同的字节。
  • 不间断空格。从网页或 PDF 复制粘贴经常会用 U+00A0 替换普通空格,而且看起来没有什么异常。
  • 尾随空列。一个导出写入四个字段,另一个导出写入四个字段和一个尾随分隔符。

有效的顺序

这些步骤中的每一步都是可单独撤消的,直到最后二十个操作为止,因此尝试一个步骤并撤消它是没有成本的。

  1. 加载文件并确认分隔符和列数正确。对解析为一列的文件进行重复数据删除没有任何用处。
  2. 修剪每个单元格上的空白。
  3. 如果导出中有空行,请将其删除,这样它们就不会折叠成单个保留的空白。
  4. 删除重复的行。
  5. 检查之前和之后的行数。区别在于有多少重复项。

整行重复,而不是重复的键

这会删除每列中相同的行。这与删除共享键的行不同。

如果同一客户以不同的注册日期出现两次,则这些不是重复的行 - 它们是碰巧共享名称的两个不同记录。删除一个就等于删除数据,该工具不会凭猜测来执行此操作。

要按键进行重复数据删除,请减少对定义该键的列的导出,对其进行重复数据删除,然后将结果用作查找列表。或者在电子表格或数据库中进行连接,这就是此类决策所属的地方。

对单列值进行重复数据删除

如果您的实际问题是列表(电子邮件地址、SKU、URL)而不是表格,那么文本工具包是更快的路线。它会删除重复的行,修剪它们并对它们进行排序,并且它需要粘贴而不是文件。

此处适用相同的排序规则:先修剪,然后删除重复。

工作示例:由三个导出合并的邮件列表

三份导出已连接成一个 4,812 行文件,其中包含“名称”、“电子邮件”和“来源”列。某些联系人出现在多个源中,并且该文件是通过复制粘贴组合而成的,因此某些行具有尾随空格。

立即删除重复项报告称删除了 118 个重复项——对于三个重叠的列表来说,删除的数量令人怀疑。

  1. 撤消重复数据删除。
  2. 修剪每个单元格上的空白。
  3. 再次删除重复的行。
  4. 将行数与原始行数进行比较。

结果: 第二遍删除的行比第一遍多得多,因为修剪使真正的重复项相同。共享电子邮件地址但“源”列不同的行仍然正确地存在 - 它们不是相同的行,决定哪个源获胜是工具留给您的判断。

打开工具

在浏览器中删除 CSV 的重复数据

删除每列中相同的行,保留第一行。它不会猜测您打算保留两个相似记录中的哪一个。

这不包括什么

  • 仅删除整行重复项。通过键列进行重复数据删除不是该工具所做的事情。
  • 案例意义重大。 ANN@example.com 和 ann@example.com 保留为两行。
  • 保留第一次出现的情况。没有选择保留最后一个。
  • 整个文件保存在内存中,上限为 50 MB。
  • 撤消仅限于最近 20 次操作。
  • 预览中仅显示前 100 行,因此请通过行数而不是通过滚动来确认结果。