Слияние 2 CSV-файлов на нескольких столбцах с помощью Python - PullRequest
0 голосов
/ 27 августа 2018

У меня 2 CSV файлы содержат тысячи данных. Предположим, данные из файлов:

first.csv:

filename | type | size
----------------------
A        | doc  |   8
A        | doc  |  10
B        | pdf  |   5

second.csv

filename | type | size
----------------------
A        | doc  |   8
A        | doc  |  10
C        | jpg  |   3

Мне нужно объединить оба файла на основе нескольких столбцов, а именно filename и type. Добавьте два новых столбца в объединенную таблицу из столбца size в обоих файлах. Сохраните его в новый файл csv. Итак, новая таблица должна быть:

filename | type | size-1 | size-2
---------------------------------
A        | doc  |   8    |    8
A        | doc  |  10    |   10
B        | pdf  |   5    |    0
C        | jpg  |   0    |    3

Я написал код:

ds1 = pd.read_csv('first.csv')
ds2 = pd.read_csv('second.csv')

data_merge = ds1.merge(ds2, on=['filename','type'],how='outer',suffixes=('-1','-2'))
data_merge.fillna(0, inplace=True)
data_merge = data_merge.reset_index(drop=True)
data_merge.to_csv('new.csv')

Когда я выполняю код, я получаю новую таблицу с данными A, повторяемыми много раз, объединяя каждое значение в столбце size.

filename | type | size-1 | size-2
---------------------------------
A        | doc  |   8    |    8
A        | doc  |   8    |   10
A        | doc  |  10    |    8
A        | doc  |  10    |   10
B        | pdf  |   5    |    0
C        | jpg  |   0    |    3

Как решить эту проблему? Спасибо.

...