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

Pandas使用agg()报Series可变无法哈希错误,如何实现类似R summarise功能

问题原因
  • 你的agg参数格式不符合Pandas命名聚合的规范:Pandas命名聚合要求传入的元组结构为(目标列名, 聚合函数),你直接把筛选后的Series对象放到了元组第一位,agg会尝试把该位置的元素作为哈希索引,而Series是可变对象,不支持哈希,因此触发报错。
  • 你没有把条件筛选的逻辑放到聚合函数内部执行,无法在聚合步骤中同步完成过滤计算。
正确实现方式

你可以通过lambda匿名函数在聚合逻辑中嵌入条件筛选,一步完成多维度聚合,和R的summarise效果完全对齐:

import pandas as pd

indi = pd.DataFrame({"PONDERA":[1,2,3,4], "ESTADO": [1,1,2,2]})

# 单指标计算,对应你的需求
empleo = indi.agg(
    ocupados = ('PONDERA', lambda x: x[indi['ESTADO']==1].sum())
)

# 多指标同步计算,完全对齐你给的R代码逻辑
empleo = indi.agg(
    poblacion = ('PONDERA', 'sum'),
    ocupados = ('PONDERA', lambda x: x[indi['ESTADO']==1].sum())
)

多指标计算的输出结果:

poblacion  ocupados
0         10         3

单指标计算的输出和你预期完全一致:

ocupados
0         3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:09:02