我在Python中格式化CSV以获得所需的结果,但我的代码似乎不能正常工作。在Python中比较两个CSV
我有格式的第一个CSV文件:在格式
2,a
1,a
4,a
5,a
3,a
1,a
3,b
2,b
1,a
第二CSV文件:
1,a,123
1,a,234
2,a,456
2,b,345
3,a,789
3,b,232
4,a,987
作为第一个CSV文件没有排序,第二CSV文件排序中相对于第一列递增顺序
我想输出格式:
2,a,456
1,a,123
4,a,987
5,a
3,a,789
1,a,234
3,b,232
2,b,345
1,a
结果印在相对于第一CSV,如果第一CSV文件组合未在第二CSV文件中发现,例如,如果5,a
不在第二CSV文件,然后只是5,a
被印刷在其推崇位置。第一个CSV文件包含许多重复项,而第二个CSV文件中的每一行都是唯一的。
这里是我的代码
for (num,alpha) in first_csv:
value_found = True
for (num1,alpha1,num2) in second_csv:
if (num == num1 and alpha == alpha1):
csv_out += str(num) + ',' + str(alpha) + ',' + str(number)
value_found = False
if value_found:
count+=1
if count == 1:
csv_out += str(num) + ',' + str(alpha)
first_csv和second_csv的元组读取的代码的CSV文件后,我已经创建了:
with open('first_csv.csv') as f:
f.readline()
first_csv = tuple(csv.reader(f, delimiter=','))
with open('second_csv.csv') as f:
f.readline()
second_csv = tuple(csv.reader(f, delimiter=','))
但它不是打印所需的输出,我在哪里我做错了?
您是否考虑过使用SQLite将数据存储到两个表中,然后在这两个表上执行联接操作以获得所需的结果?试图单独将它与Python联合起来会很快变得痛苦。 – Makoto
@makoto你有查询可以做到这一点,我不擅长数据库。 – user3218088
该示例指示第二个文件中的每个匹配仅使用一次 - 第三个“1,a”不匹配任何内容。你能否更详细地讨论这个要求? –