我正在尝试比较两个类似下面的csv文件
English.csv
i
am
is
was
were
Dictionary.csv
i,insomnia
d,disease
bc,breast cancer
我正在尝试比较两个文件中的第一列,并打印与Dictionary.csv不同的行,如下所示
final.csv
d,disease
bc,breast cancer
我试过这段代码。
import csv
with open('English.csv', 'rb') as csvfile1:
with open ("Dictionary.csv", "rb") as csvfile2:
reader1 = csv.reader(csvfile1)
reader2 = csv.reader(csvfile2)
rows1 = [row for row in reader1]
rows2 = [row for row in reader2]
col_a = [row1[0] for row1 in rows1]
col_b = [row2[0] for row2 in rows2]
col_c = [row2[1] for row2 in rows2]
only_b = [text for text in col_b if not text in col_a]
我可以从第一列获取不同的数据,但不能从第二列获取数据,如下所示。如何从第二列获得相应的数据?
>>>only_b
['d','bc']
答案 0 :(得分:2)
不确定这有多有效但IMO能做到你想做的事情:
import csv
with open('English.csv', 'rb') as csvfile1:
with open ("Dictionary.csv", "rb") as csvfile2:
reader1 = csv.reader(csvfile1)
reader2 = csv.reader(csvfile2)
rows1_col_a = [row[0] for row in reader1]
rows2 = [row for row in reader2]
only_b = []
for row in rows2:
if row[0] not in rows1_col_a:
only_b.append(row)
print only_b
输出:
[['d', 'disease'], ['bc', 'breast cancer']]