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

标签 python numpy pandas

我现在遇到了在 pandas 中计算组加权平均值的问题。

假设数据框有 3 列“Group”、“A”和“W”。如果我想找到 A 的组均值,我会这样做

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

或者如果我需要总体加权平均值我可以做

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

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

谢谢!

最佳答案

您可以将 groupby/apply 与自定义 (lambda) 函数一起使用:

import numpy as np
import pandas as pd

np.random.seed(2015)
N = 10000
df = pd.DataFrame(np.random.randint(10, size=(N,3)), columns=['Group', 'A', 'W'])
result =  df.groupby(['Group']).apply(lambda x: np.average(x['A'], weights=x['W']))
print(result)

产量

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

关于python - 在 groupby 或任何带参数的聚合函数中使用 np.average,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31663165/

相关文章:

python - 如何通过加法找到csv文件的最大值

python - 范围规则的简短描述?

python - pylab.hist(数据,规范=1)。规范化似乎工作不正确

python - 使小波变换更快/更快地附加数据

python - 如果列不存在,则将默认值添加为列

python - 随机排列除第一行以外的 DataFrame 行

python - MIME header 无法通过 Gmail API

python - 使用带有多个映射函数的 pandas applymap()

python - 如何使用图像(OpenCV和Python)正确测试RGB值?

python - 如何创建两个 Pandas DataFrame 列的字典