Как объединить три фрейма данных с одинаковыми индексами и столбцами в PandasPython

Программы на Python
Anonymous
Как объединить три фрейма данных с одинаковыми индексами и столбцами в Pandas

Сообщение Anonymous »

Я хочу объединить три фрейма данных с одинаковыми индексами и именами столбцов, чтобы получить итоговую таблицу с сохранением индексов и столбцов, в которых значения для конкретных индексов представлены строка за строкой (я думаю, необходима некоторая мультииндексация). Я пытался сделать это с помощью:

Код: Выделить всё

import pandas as pd

d1 = {'P1-6': [53, 141, 51], 'P1-12': [64, 127, 56], 'P1-22': [57, 140, 56]}
df1 = pd.DataFrame(data=d1, index=['hAT|1', 'hAT|2', 'hAT|3'])

d2 = {'P1-6': [9, 21, 80], 'P1-12': [14, 36, 70], 'P1-22': [16, 31, 68]}
df2 = pd.DataFrame(data=d1, index=['hAT|1', 'hAT|2', 'hAT|3'])

d_sum = {'P1-6': [62, 162, 131], 'P1-12': [78, 163, 126], 'P1-22': [73, 171, 124]}
df_sum = pd.DataFrame(data=d_sum, index=['hAT|1', 'hAT|2', 'hAT|3'])

final_table = pd.concat([df1, df2, df_sum], keys=['df1', 'df2', 'df_sum'])
но эффект выглядит так:

Код: Выделить всё

              P1-6  P1-12  P1-22
df1    hAT|1    53     64     57
hAT|2   141    127    140
hAT|3    51     56     56
df2    hAT|1     9     14     16
hAT|2    21     36     31
hAT|3    80     70     68
df_sum hAT|1    62     78     73
hAT|2   162    163    171
hAT|3   131    126    124

и желаемый результат должен быть:

Код: Выделить всё

              P1-6  P1-12  P1-22
hAT|1    df1    53     64     57
df2     9     14     16
df_sum    62     78     73
hAT|2    df1   141    127    140
df2    21     36     31
df_sum   162    163    171
hAT|3    df1    51     56     56
df2    80     70     68
df_sum   131    126    124
Можно ли это сделать?

Подробнее здесь: https://stackoverflow.com/questions/787 ... -in-pandas

Вернуться в «Python»