删除多个大型CSV文件之间的重复项

时间:2018-08-13 14:31:12

标签: python-3.x duplicates

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

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

现在,我得到了第二个文件,它包含了先前文件中的许多重复项。

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

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

1 个答案:

答案 0 :(得分:0)

我会使用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使其逐行而不是一个单元格地

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