簡體   English   中英

計算 pandas 中的加權平均 groupby

[英]Calculating Weighted Average groupby in pandas

我有一個 dataframe 看起來像這樣:

pd.DataFrame({'A': ['C1', 'C1', 'C1', 'C1', 'C2', 'C2', 'C2'],
                   'W': [0.2, 0.1, 0.5, 0.3, 0.4, 0.3, 0.7],
                   'Y': [2, 0, 4, 3, 2, 2, 3]})

    A    W  Y
0  C1  0.2  2
1  C1  0.1  0
2  C1  0.5  4
3  C1  0.3  3
4  C2  0.4  2
5  C2  0.3  2
6  C2  0.7  3

我想計算每組的加權平均值並在結果中添加一列。

W = 重量

Y = 值

結果 dataframe 應該看起來像這樣

    A    W  Y   result
0  C1  0.2  2   3.3
1  C1  0.1  0   3.3
2  C1  0.5  4   3.3
3  C1  0.3  3   3.3
4  C2  0.4  2   3.5
5  C2  0.3  2   3.5
6  C2  0.7  3   3.5

我想用 1 行代碼(無功能)來實現這一點。

在獲得重量和價值的乘積之前嘗試使用transform

df['result'] = df.Y.mul(df.W).groupby(df.A).transform('sum')
Out[65]: 
0    3.3
1    3.3
2    3.3
3    3.3
4    3.5
5    3.5
6    3.5
dtype: float64

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM