我一直在努力解决这个问题:
我有一个output.csv
文件,如下所示:
另一个07.csv
文件如下所示:
我想要做的是从output.csv文件中的列mmsi获取值,并检查这些值中是否有任何值在07.csv中的任何行中,并在新的results072.csv文件中提取这些行。 到目前为止这是我的代码,但它做了一件非常奇怪的事情:它以某种方式使这个新文件与07.csv一样大,并且有更多的包含值的行的外观。 我真的很感激一些反馈!提前谢谢!
import csv
with open('output.csv') as hashes:
hashes = csv.reader(hashes,delimiter = ',')
hashes = set(col[1] for col in hashes)
hashi= list(hashes)
with open('07.csv') as input_file, open('result072.csv', 'w') as output_file:
reader = csv.reader(input_file,delimiter = ',')
writer = csv.writer(output_file,delimiter = ',')
for row in reader:
if any(item in row for item in hashi):
writer.writerow(row)
答案 0 :(得分:0)
您需要做的是从output.csv文件获取所有mmsi值并逐步执行07.csv,将每个条目与所有mmsi值进行比较。如果匹配,则将该行写入新文件。
我对any
功能不太满意,所以我亲手试过。
import csv
with open('output.csv') as hashes:
csv_data = csv.reader(hashes, delimiter = ',')
mmsi_set = set(col[1] for col in csv_data)
mmsi_list = list(hashes)
with open('07.csv') as input_file, open('result072.csv', 'w') as output_file:
reader = csv.reader(input_file, delimiter = ',')
writer = csv.writer(output_file, delimiter = ',')
for row in reader:
for mmsi in mmsi_list:
if mmsi == row[4]:
writer.writerow(row)
上面的代码应该将07.csv的任何一行写入新文件result072.csv,其中output.csv中的mmsi与07.csv的mmsi匹配