首页 > 解决方案 > pandas groupby.transform 在数据框中创建一个新列

问题描述

我的数据框如下所示:

df = pd.DataFrame({'x':list('aaaaabbb'), 'y':np.random.randint(100,200,8),'z': np.random.randint(1000,2000,8)})

   x    y     z
0  a  147  1279
1  a  183  1233
2  a  138  1154
3  a  153  1030
4  a  176  1683
5  b  124  1158
6  b  115  1748
7  b  149  1892

我想在此数据框中的新列中为每个标签添加加权平均值。

我试过这个:

df['wa'] = df.groupby('x')['y'].transform(np.average, weights = df.z)

但它没有用。谁能帮我?

标签: pythonpandas

解决方案


推荐阅读