我正在尝试找到从大型CSV文件中删除重复项的最佳方法。 我每个月收到大约5/6百万行的CSV文件。 我需要调整这些(我只需要一些列,而我需要添加一些其他列)。 这些文件还包含很多重复的行和不完整的行。
我在python中提出了一个解决方案,其中我使用了一个集合并检查每一行是否在集合中。并更改需要更改的内容。
现在,我得到了第二个文件,它包含了先前文件中的许多重复项。
我正在尝试找到一种有效的解决方案,以删除文件内以及不同文件之间的重复项。最后,我想要一个列表(表或csv文件),其中仅包含该月的新条目。
我想使用python,并且我正在考虑使用sqlite数据库存储数据。但是我不确定哪种方法最有效。
答案 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
使其逐行而不是一个单元格地
一个警告:应该可以,但是如果有几百万行,则可能需要一段时间。比手工做还好!祝你好运!