Как объединить несколько фреймов данных с уникальными именами полей в один фрейм данных? - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь объединить 5 фреймов данных в один фрейм данных. Каждый отдельный фрейм данных имеет одинаковый формат, единственным вариантом является имя столбца.

# Input Dataframes
df1 = df[['id', 'num', 'type_1', 'object_1', 'notes_1']]
df2 = df[['id', 'num', 'type_2', 'object_2', 'notes_2']]
df3 = df[['id', 'num', 'type_3', 'object_3', 'notes_3']]
df4 = df[['id', 'num', 'type_3', 'object_3', 'notes_3']]
df5 = df[['id', 'num', 'type_3', 'object_3', 'notes_3']]

Каждый раз, когда я пытаюсь объединить их, я случайно объединяю их в виде столбцов, а не строк. Моя цель - сгенерировать df с 5 строками

# my attempt
df = pd.concat([df1, df2, df3, df4, df5], axis=0, ignore_index=True)  

выходы: [type_1, type_2, type_3, type_4, type_5, note_1,notes_2...]

# Desired Output Dataframe
final_df = df[['id', 'num', 'type', 'object', 'notes']]

Немного смущает, что я не знаю, как решить эту проблему с помощью concat (), поскольку именно то, что я хочу сделать, - самый первый пример в документации pandas .concat () . Кто-нибудь может дать руководство? Я чувствую, что я почти там.

1 Ответ

0 голосов
/ 03 мая 2019

Спасибо @ Скотту-Бостону и @alollz. Я думаю, что вы оба правы, но я смог заставить его работать по предложению Скотта. Спасибо всем.

# rename columns
    d1 = df1a.rename(columns={'id':'id',\
                         'num':'num',\
                         'type_1':'type',\
                         'object_1':'object',\
                         'notes_1':'notes',}
#concatenate
    frames = [d1, d2, d3, d4, d5]
    result = pd.concat(frames)


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...