我是熊猫和numpy的新手。目前,我想计算组内的加权平均值。从互联网上搜索到的代码对我来说很好。
import pandas as pd
import numpy as np
df = pd.DataFrame({'id':[0]*3+[1]*3,'se':[1]*2+[2]*2+[3]*2,'y':np.random.randn(6),'x':np.random.randn(6)})
def wavg(group, avg_name, weight_name):
d = group[avg_name]
w = group[weight_name]
try:
return (d * w).sum() / w.sum()
except ZeroDivisionError:
return np.nan
cc=df.groupby(['id','se']).apply(wavg, 'x','y').reset_index().rename(columns={0: 'retx'})
但是,我对如何构建类似“ wavg”的应用功能感到困惑。 wavg函数中的组是什么。谁能详细解释它?
谢谢。