Pandas如何分组聚合行数据并生成新的type列标签?
Pandas 分组聚合问题解决方案
你的代码错误原因是选错了分组键:你把需要求和的数值列q1 22、q2 22设置成了分组依据,自然无法得到预期结果。
你的需求实际是按id、以及type列去掉下划线及后续后缀的基础类型分组,再对两个数值列求和,具体实现代码如下:
# 提取type列的基础前缀(去掉下划线及后续内容) df['base_type'] = df['type'].str.split('_').str[0] # 按id和基础类型分组,对两个数值列求和 result = df.groupby(['id', 'base_type'], as_index=False)[['q1 22', 'q2 22']].sum() # 重命名列名匹配预期输出 result = result.rename(columns={'base_type': 'type'})
运行后得到的result即为你需要的目标结果。
内容的提问来源于stack exchange,提问作者Lynn
相关产品推荐
相关产品推荐

