Вот другой подход, использующий df.reindex
для добавления пустых столбцов вместо merge
.
import pandas as pd
dfa = pd.read_csv('./a.csv')
dfb = pd.read_csv('./b.csv')
# These columns will be renamed.
colmap = {'COUNTRY': 'LOCATION', 'MEASUREMENT': 'HEIGHT'}
# Extract all unique column names.
cols = list(set(dfa.columns.tolist() + dfb.columns.tolist()))
# Create a new dataset matching requirements.
dfb = dfb.rename(columns=colmap).reindex(columns=cols)[dfa.columns]
# Write to CSV.
dfb.to_csv('output.csv', index=False)
Вывод:
Содержимое CSV, как показано на консоли. .
(py35) user@host ~/Desktop/so
$ cat output.csv
TOWN,NAME,LOCATION,HEIGHT,STAR
,John,UK,6ft
Исходные файлы:
Содержимое исходных CSV-файлов, отображаемых на консоли ...
(py35) user@host ~/Desktop/so
$ cat a.csv
TOWN,NAME,LOCATION,HEIGHT,STAR
(py35) user@host ~/Desktop/so
$ cat b.csv
COUNTRY,WEIGHT,NAME,AGE,MEASUREMENT
UK,150lbs,John,6,6ft