gpt4 book ai didi

python - 仅查找一个 csv 中存在的行,而不查找另一个 csv 中存在的行

转载 作者:行者123 更新时间:2023-12-01 03:03:50 26 4
gpt4 key购买 nike

CSV_1.csv 的结构为:

ABC
DEF
GHI
JKL
MNO
PQR

CSV_2.csv 的结构为:

XYZ
DEF
ABC

CSV_2.csvCSV_1.csv 小很多,并且 CSV_2.csv 中存在的许多行出现在 CSV_1.csv。我想弄清楚 CSV_2.csv 中是否存在但 CSV_1.csv 中不存在的行。

这些文件未排序。

较大的 csv 有接近 1000 万行,较小的表有大约 700 万行。

我该如何去做呢?我尝试了 python,但从 CSV_2.csv 中获取每一行并与 CSV_1.csv 中的 1000 万行进行比较需要花费大量时间。

这是我在 python 中尝试过的:

with open('old.csv', 'r') as t1, open('new.csv', 'r') as t2:
fileone = t1.readlines()
filetwo = t2.readlines()

with open('update.csv', 'a') as outFile:
for line in filetwo:
if line not in fileone:
outFile.write(line)
我想到了

awkawk 的确切代码是什么?

最佳答案

是的,你的方法效率很低。使用 O(1) 集合查找时间,并惰性地迭代 t2 中的行,以下代码应该更快:

with open('old.csv', 'r') as t1, open('new.csv', 'r') as t2:
fileone = frozenset(t1)

with open('update.csv', 'a') as outFile:
for line in t2:
if line not in fileone:
outFile.write(line)

关于python - 仅查找一个 csv 中存在的行,而不查找另一个 csv 中存在的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43580836/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com