【问题标题】:Removing duplicates between multiple large CSV files删除多个大型 CSV 文件之间的重复项
【发布时间】:2018-08-13 22:59:49
【问题描述】:

我正在尝试找到从大型 CSV 文件中删除重复项的最佳方法。 我每个月都会收到大约 5/6 百万行的 CSV 文件。 我需要调整这些(我只需要一些列,我需要添加一些其他的)。 这些文件还包含许多重复和不完整的行。

我在 python 中提出了一个解决方案,我使用一个集合并检查每一行是否在集合中。并改变需要改变的地方。

现在,我得到了第二个文件,它包含许多与前一个文件相同的重复项。

我正在尝试找到一种有效的解决方案来删除文件中以及不同文件之间的重复项。最后,我想要一个列表(表格或 csv 文件),其中仅包含该月的新条目。

我想使用 python,我正在考虑使用 sqlite 数据库来存储数据。但我不确定哪种方式最有效。

【问题讨论】:

  • pandas drop_duplicates 是否可以将 csv 加载到 Pandas 数据框中。

标签: python-3.x duplicates


【解决方案1】:

我会使用numpy.unique():

import numpy as np

data = np.vstack((np.loadtxt("path/to/file1.csv"), np.loadtxt("path/to/file2.csv")))
#this will stack both arrays on top of each other, creating one giant array

data = np.unique(data, axis=0)

np.unique 获取整个数组并仅返回唯一元素。确保设置 axis=0 以便它逐行而不是逐个单元格。

一个警告:这应该可行,但如果有几百万行,则可能需要一段时间。不过还是比手工好!祝你好运!

【讨论】:

    猜你喜欢
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多