gpt4 book ai didi

python - 获取加权平均值然后分组到 pandas

转载 作者:太空宇宙 更新时间:2023-11-03 16:07:19 27 4
gpt4 key购买 nike

我有以下数据框。

      weight       x     value
0 5 -8.7 2
1 9 -8.7 3
2 12 -21.4 10
3 32 -21.4 15

我需要获得该值的加权平均值并按 x 分组。结果将是:

-8.7:(5/(5+9) * 2) + ((9/14) * 3) = 2.64

-21.4: ((12/44) * 10) + ((32/44) * 15) = 13.63

         x     weighted_value
0 -8.7 2.64
1 -21.4 13.63

最佳答案

numpy.average 承认一个 weights 参数:

import io
import numpy as np
import pandas as pd

data = io.StringIO('''\
weight x value
0 5 -8.7 2
1 9 -8.7 3
2 12 -21.4 10
3 32 -21.4 15
''')
df = pd.read_csv(data, delim_whitespace=True)

df.groupby('x').apply(lambda g: np.average(g['value'], weights=g['weight']))

输出:

x
-21.4 13.636364
-8.7 2.642857
dtype: float64

关于python - 获取加权平均值然后分组到 pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39664195/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com