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

Pandas分组使用agg同时计算均值和方差报错,求代码调整方案

解决方案

你遇到的报错是因为直接在agg()中传入多个字符串参数的写法不符合pandas的API要求。要同时计算分组后的均值和方差,需要用列表包裹聚合函数名称,或者用字典自定义列的聚合规则。

方法一:列表统一指定聚合函数

适用于所有选中列都需要计算相同聚合指标的场景,代码如下:

newdf = df.groupby(['stock_symbol', 'quarter'])['rating_recommend', 'rating_outlook'].agg(['mean', 'var'])

执行后结果的列会是多层索引结构:外层为原列名(rating_recommend、rating_outlook),内层为聚合函数名(mean、var)。

方法二:字典自定义列聚合规则

如果需要针对不同列设置不同聚合逻辑(比如某列仅算均值,另一列算均值+方差),可以用字典明确指定:

newdf = df.groupby(['stock_symbol', 'quarter']).agg(
    rating_recommend_mean=('rating_recommend', 'mean'),
    rating_recommend_var=('rating_recommend', 'var'),
    rating_outlook_mean=('rating_outlook', 'mean'),
    rating_outlook_var=('rating_outlook', 'var')
)

这种方式会生成扁平化的列名,更便于后续直接引用。

报错原因说明

pandas的agg()方法接收多个聚合函数时,要求将它们放在列表或字典这类容器中。直接传入, 'var'会被解析为函数的额外参数,导致pandas误触发numpy相关操作逻辑,进而抛出UnsupportedFunctionCall错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 14:55:20