我有一个包含两列的主文件,其中包含来自所有旧记录的数据。每当我获得一个包含两列的新数据文件时,我希望将其与主文件进行比较,并从新文件中删除重复的值,并从新数据中获得清理后的数据,而不更改主文件中的任何内容。
np.setdiff1d(new_file, master_file)我已经尝试了上面的代码,但它没有给出预期的结果
发布于 2020-08-25 21:09:27
这是一个非常快速的解决方案,它对文件中的变化不是很健壮,而且它有一些迭代。但是如果它是相对较小的文件并且是一次性的,这是可行的。
test_master = pd.read_csv('data/test_master.csv')
test_new = pd.read_csv('data/test_new.csv')
drop_these = []
for i,d in enumerate(zip(test_new.iloc[:,0], test_new.iloc[:,1])):
if d in zip(test_master.iloc[:,0], test_master.iloc[:,1]):
drop_these.append(i)
test_new.drop(drop_these, inplace=True)另外,如果你不想使用pandas,这也不是最好的解决方案:
import csv
master_file = []
with open("data/test_master.csv", "r") as f:
writer = csv.reader(f)
for row in writer:
master_file.append(row)
new_file = []
with open("data/test_new.csv", "r") as f:
writer = csv.reader(f)
for row in writer:
if row not in master_file:
new_file.append(row)https://stackoverflow.com/questions/63579222
复制相似问题