Переименовать мультипиндельный пандас с данными - PullRequest
0 голосов
/ 15 марта 2019

У меня есть датафрейм, выданный из таблицы pd.pivot_table

                          sum
                          Price
Manager       Status           
Debra Henley  declined    70000
              pending     50000
              presented   50000
              won         65000
Fred Anderson declined    65000
              pending      5000
              presented   45000
              won        172000

Я хочу добавить ИТОГО в индекс в последней строке, чтобы получить такой результат:

                          sum
                          Price
Manager       Status           
Debra Henley  declined    70000
              pending     50000
              presented   50000
              won         65000
Fred Anderson declined    65000
              pending      5000
              presented   45000
              won        172000
All           TOTAL      522000

Как мне это сделать, пожалуйста?

1 Ответ

0 голосов
/ 15 марта 2019

Например, это кадр данных:

        Manager     Status      Price
0   Debra Henley    declined    1000
1   Fred Anderson   pending     1001
2   Debra Henley    presented   1002
3   Fred Anderson   won         1003
4   Debra Henley    declined    1004
5   Fred Anderson   pending     1005
6   Debra Henley    presented   1006
7   Fred Anderson   won         1007
8   Debra Henley    declined    1008
9   Fred Anderson   pending     1009
10  Debra Henley    presented   1010
11  Fred Anderson   won         1011
12  Debra Henley    declined    1012
13  Fred Anderson   declined    1013
14  Debra Henley    pending     1014
15  Fred Anderson   presented   1015
16  Debra Henley    won         1016
17  Fred Anderson   declined    1017
18  Debra Henley    declined    1018

Чтобы повернуть таблицу:

df.pivot_table(values='Price', index=['Manager', 'Status'], margins=True, margins_name='Total', aggfunc={'Price': np.sum})

Результат:

                            Price
Manager         Status  
Debra Henley    declined    5042
                pending     1014
                presented   3018
                won         1016
Fred Anderson   declined    2030
                pending     3015
                presented   1015
                won         3021

Добавить Всего в последнем ряду, добавьте margins=True, margins_name='Total' к своему сводному коду.

Окончательный код:

df.pivot_table(values='Price', index=['Manager', 'Status'], margins=True, margins_name='Total', aggfunc={'Price': np.sum})

Результат:

                            Price
Manager         Status  
Debra Henley    declined    5042
                pending     1014
                presented   3018
                won         1016
Fred Anderson   declined    2030
                pending     3015
                presented   1015
                won         3021
        Total              19171

Надеюсь, что это такполезно

...