如何删除 CSV 中的重复行
将文件加载到 CSV Cleaner 中,首先修剪空白,然后删除重复的行。每行的第一次出现将被保留,后面的副本将被删除,因此保留的数据的顺序不会改变。
这两个步骤的顺序就是整个技巧。仅尾部空格不同的两行不会向计算机重复,因此在修剪之前进行重复数据删除会将两行保留在原位,然后报告工作完成情况。
为什么“相同”的行能够在重复数据删除中幸存下来
修剪直接解决第一个和最后一个问题。其他的需要你做出决定,这就是为什么它们没有默默地标准化的原因——例如,折叠大小写对于电子邮件地址是正确的,对于产品代码是错误的,并且工具无法区分哪一列是哪一列。
- 尾随或前导空格。在电子表格中不可见,对比较具有决定性作用。
- 大小写差异。 ann@example.com 和 Ann@example.com 是不同的字符串,即使它们是同一个邮箱。
- 引用不同。 “Smith, John”和Smith\, John在解析之前可以携带相同的值和不同的字节。
- 不间断空格。从网页或 PDF 复制粘贴经常会用 U+00A0 替换普通空格,而且看起来没有什么异常。
- 尾随空列。一个导出写入四个字段,另一个导出写入四个字段和一个尾随分隔符。
有效的顺序
这些步骤中的每一步都是可单独撤消的,直到最后二十个操作为止,因此尝试一个步骤并撤消它是没有成本的。
- 加载文件并确认分隔符和列数正确。对解析为一列的文件进行重复数据删除没有任何用处。
- 修剪每个单元格上的空白。
- 如果导出中有空行,请将其删除,这样它们就不会折叠成单个保留的空白。
- 删除重复的行。
- 检查之前和之后的行数。区别在于有多少重复项。
整行重复,而不是重复的键
这会删除每列中相同的行。这与删除共享键的行不同。
如果同一客户以不同的注册日期出现两次,则这些不是重复的行 - 它们是碰巧共享名称的两个不同记录。删除一个就等于删除数据,该工具不会凭猜测来执行此操作。
要按键进行重复数据删除,请减少对定义该键的列的导出,对其进行重复数据删除,然后将结果用作查找列表。或者在电子表格或数据库中进行连接,这就是此类决策所属的地方。
对单列值进行重复数据删除
如果您的实际问题是列表(电子邮件地址、SKU、URL)而不是表格,那么文本工具包是更快的路线。它会删除重复的行,修剪它们并对它们进行排序,并且它需要粘贴而不是文件。
此处适用相同的排序规则:先修剪,然后删除重复。
工作示例:由三个导出合并的邮件列表
三份导出已连接成一个 4,812 行文件,其中包含“名称”、“电子邮件”和“来源”列。某些联系人出现在多个源中,并且该文件是通过复制粘贴组合而成的,因此某些行具有尾随空格。
立即删除重复项报告称删除了 118 个重复项——对于三个重叠的列表来说,删除的数量令人怀疑。
- 撤消重复数据删除。
- 修剪每个单元格上的空白。
- 再次删除重复的行。
- 将行数与原始行数进行比较。
结果: 第二遍删除的行比第一遍多得多,因为修剪使真正的重复项相同。共享电子邮件地址但“源”列不同的行仍然正确地存在 - 它们不是相同的行,决定哪个源获胜是工具留给您的判断。
打开工具
删除每列中相同的行,保留第一行。它不会猜测您打算保留两个相似记录中的哪一个。
这不包括什么
- 仅删除整行重复项。通过键列进行重复数据删除不是该工具所做的事情。
- 案例意义重大。 ANN@example.com 和 ann@example.com 保留为两行。
- 保留第一次出现的情况。没有选择保留最后一个。
- 整个文件保存在内存中,上限为 50 MB。
- 撤消仅限于最近 20 次操作。
- 预览中仅显示前 100 行,因此请通过行数而不是通过滚动来确认结果。