You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas分组后二次分组报错的解决方法及目标结果实现

问题修复方案

错误原因

你无法对DataFrameGroupBy对象再次调用groupby方法,这个类型本身不提供该接口,因此触发AttributeError。

正确实现方式

要得到ax=3,ay=3,bx=9,cy=6的结果,只需一次性按col1和col2联合分组,再对col3求和即可,无需嵌套调用groupby。

具体代码示例

import pandas as pd

# 构造目标DataFrame
df = pd.DataFrame({
    'col1': ['a', 'a', 'a', 'b', 'b', 'c'],
    'col2': ['x', 'x', 'y', 'x', 'x', 'y'],
    'col3': [1, 2, 3, 4, 5, 6]
})

# 按col1和col2联合分组,计算col3的总和
sum_result = df.groupby(['col1', 'col2'])['col3'].sum()

# 转换为需要的键值对格式
final_result = {f"{k1}{k2}": v for (k1, k2), v in sum_result.items()}

print(final_result)
# 输出: {'ax': 3, 'ay': 3, 'bx': 9, 'cy': 6}

代码说明

  • groupby(['col1', 'col2']):同时以两列作为分组依据,直接获取每个col1+col2组合对应的分组数据。
  • ['col3'].sum():对每个分组内的col3列求和,得到目标数值。
  • 最后通过字典推导式将分组的二元键合并为ax这类字符串,生成你需要的结果格式。

内容的提问来源于stack exchange,提问作者user20324169

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 07:05:21