从数据透视表熊猫计算百分比

时间:2019-03-12 01:57:23

标签: pandas pivot-table python-3.6 percentage

我有一组数据已经从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 :(得分:0)

怎么样

df['percent'] = df['Profit']/sum(df['Profit'])

答案 1 :(得分:0)

例如,您具有以下数据框:

    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 中添加另一列,然后计算百分比。

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