Расчет процента от сводной таблицы панд - PullRequest
0 голосов
/ 12 марта 2019

У меня есть набор данных, которые я уже импортировал из файла Excel xlsx.После этого я решаю выяснить процент от общей прибыли от каждого клиентского сегмента.Мне удается использовать сводную таблицу для суммирования общей прибыли каждого сегмента клиентов.Впрочем, мне тоже хотелось бы узнать процент.Как мне это сделать?

Сводная таблица

 profit = df.pivot_table(index = ['Customer Segment'], values = ['Profit'], aggfunc=sum)

Результат Пока

Customer Segment      Profit
    A                    a
    B                    b
    C                    c
    D                    d

Возможно, добавим процентстолбец к сводной таблице будет идеальным способом.Но как я могу это сделать?

Ответы [ 2 ]

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

Например, у вас есть этот фрейм данных:

    Customer Segment    Customer    Profit
0         A                AAA        12
1         B                BBB        43
2         C                CCC        45
3         D                DDD        23
4         D                EEE        67
5         C                FFF        21
6         B                GGG        45
7         A                JJJ        67
8         A                KKK        32
9         B                LLL        13
10        C                MMM        43
11        D                NNN        13

Из приведенного выше фрейма данных вы хотите создать сводную таблицу.

import pandas as pd
import numpy as np

tableframe = pd.pivot_table(df, values='Profit', index=['Customer Segment'], aggfunc=np.sum)

Вот ваша сводная таблица:

                  Profit
Customer Segment    
     A              111
     B              101
     C              109
     D              103

Теперь вы хотите добавить еще один столбец к табличному фрейму , а затем вычислить процент.

tableframe['percentage'] = ((tableframe.Profit / tableframe.Profit.sum()) * 100)

Вот ваш последний табличный фрейм :

                   Profit   percentage
Customer Segment        
         A          111     26.179245
         B          101     23.820755
         C          109     25.707547
         D          103     24.292453
0 голосов
/ 12 марта 2019

Как насчет

df['percent'] = df['Profit']/sum(df['Profit'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...