сравнение столбцов в 2 файлах CSV

1

У меня есть 2 CSV файла, которые имеют 3 столбца с именем num, date и tex.

File1

num         date                tex   

20170512    12/05/2017 15:39    1001  

20170512    12/05/2017 15:39    1001 

20170908    08/09/2017 02:42    1001  

20170908    08/09/2017 06:30    1001 

Файл 2

num              date                tex   

201705332212    12/05/2017 15:39    1001  

20170523212     12/05/2017 15:39    100156 

2017232320908   08/09/2017 02:42    10012  

20170908        08/09/2017 06:30    1001 

желаемый выход

diff.csv

num              date                tex   

201705332212    12/05/2017 15:39    1001  

20170523212     12/05/2017 15:39    100156 

2017232320908   08/09/2017 02:42    10012  

Я хочу сопоставить оба столбца "num" и "tex". в настоящее время нижеприведенный код просто проверяет разницу во всем файле, а не на столбец "num" и "tex". В идеале, я хочу, чтобы оба столбца "num" и "tex были разными", я хотел бы, чтобы он записывал его в файл out.csv.

Теги:
python-3.x

1 ответ

1

Используйте модуль csv.

Пример:

import csv

with open("file1.csv","rU") as file_0, open("file2.csv","rU") as file_1, open("out.csv", "w") as out_file:
    file_0 = csv.reader(file_0, delimiter=";")
    file_1 = csv.reader(file_1, delimiter=";")
    next(file_0)                                                   #Skip Header

    out_file_writer = csv.writer(out_file, delimiter=";")
    out_file_writer.writerow(next(file_1))                         #Writer Header

    for k, v in zip(file_0, file_1):
        if (k[0] != v[0]) or (k[-1] != v[-1]):
            out_file_writer.writerow(v)                            #Writer Diff
  • 0
    Да, (k[0] != v[0]) ==> num & (k[-1] != v[-1]) ==> tex ... Вы можете проверить, напечатав k [0], v [0] и k [-1], v [-1]
  • 0
    open("out.csv", "wb") as out_file:
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню