我现在遇到了计算熊猫群加权平均值的问题。
假设数据帧有3列'Group','A'和'W'。如果我想找到A的组均值,我会做
df.groupby(['Group'])['A'].mean()
或者,如果我需要整体加权平均值,我可以
np.average(df.A,weight=df.W)
但我可以计算每组的加权平均值吗?
谢谢!
答案 0 :(得分:4)
您可以将groupby / apply与自定义(lambda)函数一起使用:
Group
0 4.422978
1 4.557099
2 4.517336
3 4.535559
4 4.526898
5 4.697104
6 4.580512
7 4.598492
8 4.388965
9 4.424191
dtype: float64
产量
select
sum(CASE WHEN type = 'IncomingTransfer' THEN amount ELSE -amount END) as totalsum
from t;