【问题标题】:Python - Compare similar values in two columns from two different csvPython - 比较来自两个不同 csv 的两列中的相似值
【发布时间】:2018-07-23 21:57:18
【问题描述】:

我有两个具有相同行名的 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")

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

谢谢

编辑:更清楚

【问题讨论】:

  • x[1]怎么样?
  • @Neo 我的错,意思是比较每个文件的第一列和第二列。
  • 不清楚你要做什么比较

标签: python csv


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2023-04-11
    • 1970-01-01
    • 2013-10-24
    • 2020-02-02
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多