我想计算每个组的百分比和新列 例如: 数据=
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获取它?谢谢!
答案 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