Добавить мультииндексный Dataframe в другой dataframe - PullRequest
0 голосов
/ 16 октября 2019

У меня есть следующий пример данных:

df_temp = pd.DataFrame(np.arange(6).reshape(3,-1),
                                        index=(0,1,2),
                                        columns=pd.MultiIndex.from_tuples([('A', 'Salad'),('B','Burger')]))

enter image description here

Я хотел бы поставить столбец ('A', 'Salad')в другом кадре данных, который может быть пустым или уже имеет этот столбец.

В этом случае df_output пуст или столбец уже существует в df_b.

df_output = pd.concat([df_output, df_temp], axis=1)

enter image description here

Если столбец уже существует, он просто заменяет его. Однако, если df_output пуст, преобразует многоуровневый индекс в одну строку, которая мне не нужна.

В этом случае df_output уже имеет столбец:

enter image description here

И как это должно выглядеть после добавления:

enter image description here

Я пытаюсь использовать concat но многоиндексный уровень столбцов исчезает.

1 Ответ

0 голосов
/ 16 октября 2019

Мне удалось исправить это с помощью следующего решения, хотя я считаю, что это можно сделать лучше:

if len(df_output.columns):
    df_output = pd.concat([df_output, df_temp], axis=1).sort_index(level=0, axis=1)
else:
    df_output = df_temp
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...