在groupby中使用np.average或在参数中使用任何聚合函数

时间:2015-07-27 20:57:51

标签: python numpy pandas

我现在遇到了计算熊猫群加权平均值的问题。

假设数据帧有3列'Group','A'和'W'。如果我想找到A的组均值,我会做

df.groupby(['Group'])['A'].mean()

或者,如果我需要整体加权平均值,我可以

np.average(df.A,weight=df.W)

但我可以计算每组的加权平均值吗?

谢谢!

1 个答案:

答案 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;