Добавление столбца промежуточных итогов в таблицу многоуровневых столбцов - PullRequest
0 голосов
/ 06 апреля 2020

Это мой фрейм данных после поворота:

Country            London                         Shanghai
PriceRange 100-200 200-300 300-400        100-200 200-300 300-400
Code
A               1      1       1             2        2      2   
B              10      10     10            20       20     20 

Можно ли добавлять столбцы после каждой страны для достижения следующего:

Country            London                                Shanghai                              All  
PriceRange 100-200 200-300 300-400  SubTotal      100-200 200-300 300-400  SubTotal 100-200 200-300 300-400 SubTotal
Code
A               1      1       1       3             2        2      2        6          3     3        3      9
B              10      10     10      30            20       20     20       60         30    30       30     90

Я знаю, что могу использовать поля = True Однако это только добавляет итоговую итоговую сумму. Есть ли варианты, которые я могу использовать для достижения этой цели? Спасибо.

1 Ответ

3 голосов
/ 06 апреля 2020

Давайте использовать sum с join

s=df.sum(level=0,axis=1)
s.columns=pd.MultiIndex.from_product([list(s),['subgroup']])
df=df.join(s).sort_index(level=0,axis=1).assign(Group=df.sum(axis=1))
df
       A                    B                  Group
       1   2   3 subgroup   1   2   3 subgroup      
Code                                                
A      1   1   1        3   2   2   2        6     9
B     10  10  10       30  20  20  20       60    90
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...