Python-比较来自两个不同csv的两列中的相似值

时间:2018-07-23 13:35:01

标签: python csv

我有两个具有相同行名的CSV文件:

Name, Lastname.

但是,file2.csv还有一个名为

的列。
Attention

每个文件都有一个不同的名称和姓氏列表(顺序不一)。如果两个文件中都包含名字和姓氏,我正在尝试找到一种方法来打印关注列。

这是我到目前为止所拥有的:

    with open('result.csv') as r:
        set1 = set(x[0] for x in csv.reader(r))

    with open('result2.csv') as r:
        set2 = set(x[0] for x in csv.reader(r))

    for x, y in zip(set1, set2):
        if x[0] == y[0]:
            print("Matched")

如何阅读每个文件的第一和第二列?

谢谢

编辑:更清晰

1 个答案:

答案 0 :(得分:2)

为查找表创建一组元组,其中将包含前两列中的值,例如:

with open("result.csv", "r") as f:
    result = {(x[0], x[1]) for x in csv.reader(f)}

然后遍历第二个文件,检查第一个文件的查找表中是否存在前两列的元组,如果是,则在每个匹配项上打印第三列,例如:

with open("result2.csv", "r") as f:
    for row in csv.reader(f):
        if (row[0], row[1]) in result:
            print("Matched: {}".format(row[2]))  # print the third column