首页 > 解决方案 > 如何对具有相似名称的行求和

问题描述

我有一个看起来像这样的数据框

在此处输入图像描述

每行都有自己的副本,带有“treatment_group”前缀,但系数不同。如何使用以下逻辑在整个数据帧中按 coef 对这些行求和:sum = treatment_group: feature 19 + feature 19?

标签: pythonpandasdataframe

解决方案


您可以使用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()

推荐阅读