Pandas / SQL-根据不同的Group计算出的百分比

时间:2016-10-06 19:24:54

标签: python sql pandas dataframe

我想计算每个组的百分比和新列 例如: 数据=

Group  Value   
  A     1
  A     2
  A     1
  B     4
  B     4
  B     8

我希望得到:

Group  Value   Percentage
  A     1         0.25
  A     2         0.50
  A     1         0.25
  B     4         0.25
  B     4         0.25
  B     8         0.50

如何使用pandas函数或SQL获取它?谢谢!

2 个答案:

答案 0 :(得分:2)

使用pandas:

df['Percentage'] = df.groupby('Group')['Value'].transform(lambda x: x / x.sum())

输出:

  Group  Value  Percentage
0     A      1        0.25
1     A      2        0.50
2     A      1        0.25
3     B      4        0.25
4     B      4        0.25
5     B      8        0.50

答案 1 :(得分:1)

尝试使用

SELECT A.Group, 
       A.Value, 
       ( A.Value / (SELECT Sum(b.Value) 
                    FROM   yourtable b 
                    WHERE  b.Group = A.Group) ) Percentage
FROM   yourtable A