【发布时间】:2021-07-19 04:13:39
【问题描述】:
我有 2 个 csv 文件,我想比较并打印 fil2.csv 中不同或不存在的行。
value data
a 67
b 654
c 87
d 789
e 23
file2.csv
value data
a 67
b 654
c 87
d 7
想要的输出
d 789
e 23
我尝试了这段代码,但它无法打印差异。
reader1 = csv.reader(open(file1.csv, 'r'), delimiter=',', quotechar='"')
data = next(reader1)
reader2 = csv.reader(open(file2.csv, 'r'), delimiter=',', quotechar='"')
data2 = next(reader2)
if (data[0] != data2[0]) and (data[1] != data2[1]):
print(data[0] , data[1])
【问题讨论】:
-
您的示例中的第 0 列值匹配,因此您的 if 语句将始终为 false,因此不会打印任何内容。
-
它也会忽略缺失值吗? @RufusVS
-
要确定处理数据的最佳方式,您需要了解数据集。第一列中的数字是否都是唯一且升序的?或者文件中可以有重复或随机顺序?
-
它们不是重复的,将按顺序排列@RufusVS
标签: python pandas numpy csv file-handling