Python:在大型CSV中高效比较列

时间:2019-11-14 18:48:55

标签: python loops csv

我有两个csv文件(实际上由制表符分隔)

文件1具有650,214行。它的格式是ID编号在第一列下(不连续)。

文件2具有7,901,252行。格式如下:

[ ID number | lang | other data]。例如:[64 | deu | Guten Tag]

如果文件2中的ID号出现在文件1中的ID号列中,并且具有我感兴趣的lang,我想将文件2中的该行复制到字典中。

首先,我将文件1中的所有ID号放在一个列表中:

savedIDs = []
targetLang = 'deu'
phrases = {}

with open('File1.csv', 'r', encoding='utf-8') as file1:
    reader = csv.reader(file1, delimiter='\t')
    for row in reader:
        savedIDs.append(row[0])

那很快就发生了。然后,我遍历File2,检查列表并保存到字典中:

with open('File2.csv', 'r', encoding='utf-8') as file2:
    reader = csv.reader(file2, delimiter='\t')
    for row in reader:
        if row[1] == targetLang and row[0] in savedIDs:
            phrases[row[0]] = (row[2], []) # second value gets filled in later with translation

第二部分花费的时间过长,可能是每秒3行。

有没有一种方法可以更快地完成?我应该使用PANDAS还是其他模块来处理csv

0 个答案:

没有答案