我有一个像这样的数据框(除了有更多的行和大小,比如说):
size amount
1 big 1
2 big 9
3 small 3
4 small 1
我希望获得这样的数据框,其中amountPct除以具有相同大小的金额之和。
size amountPct
1 big 0.10
2 big 0.90
3 small 0.75
4 small 0.25
我可以通过重塑数据框,除以每个大小的总和,然后将其重新塑造回原始形状来实现这一点,但是有更优雅的方法吗?
PS:我问了R同样的问题,但现在我想要Pandas的答案!答案 0 :(得分:2)
这样的事情怎么样:
df = pd.DataFrame({'size':['big', 'big', 'small', 'small'], 'amount':[1, 9, 3, 1]})
df['pct'] = df.groupby('size')['amount'].apply(lambda x: x.astype(float)/x.sum())