python - 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)
但它没有用。谁能帮我?
解决方案
推荐阅读
- vb.net - 如何在 Outlook 中切换视图
- powershell - 用于创建新用户错误的学生脚本:System.String 类型为“System.Management.Automation.SwitchParameter”
- typescript - 为什么以`T extends undefined`为条件的Typescript类型,用`boolean`实例化T,将T解析为`never`?
- r - 无法从某些包中找到功能“某些功能”
- http - 当http响应相同时如果没有缓存会发生什么
- python - 无法使用系统分配的标识从 Azure 容器实例访问 Azure Vault
- node.js - Xero API:创建新项目时收到错误“PurchaseAccountId 帐户无效”
- javascript - 使用 turf.intersect 时出现拓扑异常
- android - 检查 ListView 中的一个 CheckBox 使用 Flutter 来检查所有其余的 CheckBox
- libreoffice-basic - 无法从 libreoffice 6.4.3.2 basic 中的单元格获取值