python - 如何对具有相似名称的行求和
问题描述
我有一个看起来像这样的数据框
每行都有自己的副本,带有“treatment_group”前缀,但系数不同。如何使用以下逻辑在整个数据帧中按 coef 对这些行求和:sum = treatment_group: feature 19 + feature 19?
解决方案
您可以使用split
选择最后一个值,它适用于具有聚合的任何值sum
:
df.groupby(df.index.str.split(':').str[-1]).sum()
或使用replace
:
df.groupby(df.index.str.replace('treatment_group:', '', regex=True)).sum()
就像评论中提到的@mozway - 可以提取索引中的最后一个数字(添加expand=False
为 return Series
):
df.groupby(df.index.str.extract('(\d+)$', expand=False)).sum()
推荐阅读
- c# - 是否有将 nuget.exe 指向特定 NuGet.Config 文件的命令?
- php - 试图仅在我的网站中获取非对象的属性“id”
- spring-boot - 除了 WebFlux 上下文之外,Spring-Boot 是否处理 Kotlin 协程?
- azure-devops - Azure DevOps 中的并发/并行构建
- javascript - 模拟按 Enter 键提交(无 jquery)
- aws-amplify - 如何防止 AmplifyJS 始终不从公用文件夹中获取对象?
- angular - TypeScript:构造函数参数列表中的赋值运算符?
- oracle - 如何使用codeigniter制作pdf?
- teamcity - 从 TeamCity 构建步骤开始后台进程
- python - 如何将列表转换为字典 python;字典的键可能有多个值吗?