Добавление итогов на уровне строки при использовании сводной таблицы в python - PullRequest
0 голосов
/ 07 августа 2020

У меня есть набор данных в формате ниже. Отсутствуют отсутствующие значения.

Buyer/Spender,Channel,Region,Fresh,Milk,Grocery,Frozen,Detergents_Paper,Delicatessen
1,Retail,Other,12669,9656,7561,214,2674,1338
9,Hotel,Other,5963,3648,6192,425,1716,750

Используя сводную таблицу, я мог бы кадрировать детали ниже

summary=pd.pivot_table(Annual_Spending, values=['Fresh','Milk','Grocery','Frozen','Detergents_Paper','Delicatessen'], index=['Region','Channel'],  aggfunc=sum, margins=all)

summary

Region  Channel Delicatessen    Detergents_Paper    Fresh   Frozen  Grocery Milk                    
Lisbon  Hotel   70632               56081           761233  184512  237542  228342
        Retail  33695               148055          93600   46514   332495  194112
Oporto  Hotel   30965               13516           326215  160861  123074  64519
        Retail  23541               159795          138506  29271   310200  174625
Other   Hotel   320358              165990          2928269 771606  820101  735753
        Retail  191752              724420          1032308 158886  1675150 1153006
All             670943              1267857         5280131 1351650 3498562 2550357

На данный момент я получаю итоги на уровне столбца. Я пытаюсь понять, как складывать итоги на уровне строк. Я пробовал несколько вариантов, но большинство из них дает промежуточные итоги на каждом уровне индекса.

Ответы [ 2 ]

0 голосов
/ 07 августа 2020

Конечно, как ответил @Oupkar Sandhu, margins=True также суммирует строки, но я считаю, что каждый столбец в этих данных считается независимым столбцом, а итоговые суммы строк не вычисляются. Думаю, неплохо добавить итоги по столбцам (я предполагаю, но ...).

summary=(pd.pivot_table(Annual_Spending, values=['Fresh','Milk','Grocery','Frozen','Detergents_Paper','Delicatessen'],
                        index=['Region','Channel'], aggfunc='sum', margins=all))
summary['Total'] = summary.sum(axis=1)

        Delicatessen    Detergents_Paper    Fresh   Frozen  Grocery Milk    Total
Region  Channel                         
Other   Hotel   750 1716    5963    425 6192    3648    18694
Retail  1338    2674    12669   214 7561    9656    34112
All     2088    4390    18632   639 13753   13304   52806
0 голосов
/ 07 августа 2020

Вполне уверенно, если вы установите margins=True вместо всего, что должно сработать.

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