Предположим, у меня есть столбцы в file1.csv как
Customer id Name
Q1 Alen
W2 Ricky
E3 Katrina
R4 Anya
T5 Leonardo
и столбцы в file2.csv как
Customer id Name
Q1 Alen
W2 Harry
E3 Katrina
R4 Anya
T5 Leonard
здесь, как вы можете видеть для идентификатора клиента: W2, соответствующее имя не соответствует. поэтому файл output.csv должен выглядеть следующим образом:
Customer id Status
Q1 Matching
W2 Not matching
E3 Matching
R4 Matching
T5 Matching
Как я могу получить вышеуказанный вывод, используя python.
P.S. Какой код для сравнения нескольких столбцов, а не только имя столбца?
Мой код
import csv
with open('file1.csv', 'rt', encoding='utf-8') as csvfile1:
csvfile1_indices = dict((r[1], i) for i, r in enumerate(csv.reader(csvfile1)))
with open('file2.csv', 'rt', encoding='utf-8') as csvfile2:
with open('output.csv', 'w') as results:
reader = csv.reader(csvfile2)
writer = csv.writer(results)
writer.writerow(next(reader, []) + ['status'])
for row in reader:
index = csvfile1_indices.get(row[1])
if index is not None:
message = 'matching'
writer.writerow(row + [message])
else:
message = 'not matching'
writer.writerow(row + [message])
results.close()
Это работает нормально, но могу ли я написать другим способом, чтобы получить тот же вывод? и какие изменения мне нужно сделать, чтобы сравнить несколько столбцов?