Создать общий индекс

#python #python-3.x #pandas

Вопрос:

Есть ли простой способ создать общий индекс?

 df                value
UK  2020-01-01    10
    2020-01-02    20
US  2020-01-01    100
    2020-01-02    200
 

Ожидаемый Результат:

                     value
UK     2020-01-01    10
       2020-01-02    20
US     2020-01-01    30
       2020-01-02    40
Total  2020-01-01    40
       2020-01-02    60
 
 df.loc[('Total', ""), :] = df.sum()
 

Ответ №1:

Используйте sum с добавлением Total в столбец, затем преобразуйте в индекс и последний для правильного порядка используется DataFrame.swaplevel :

 df1 = df.sum(level=1).assign(df='Total').set_index('df', append=True).swaplevel(1,0)
print (df1)
                  value
df    new              
Total 2020-01-01    110
      2020-01-02    220

df = pd.concat([df, df1])