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

Python中Pandas groupby.max报错需1个位置参数但传2个,ipynb正常嵌入脚本失效

报错原因

该报错是两个运行环境的pandas版本不一致导致的:

  • 本地Jupyter环境使用pandas 1.3.0及以上版本,该版本更新了groupby对象的聚合方法逻辑,支持直接传入目标列名作为位置参数筛选聚合范围,所以代码可以正常运行
  • 嵌入式脚本环境使用的是1.3.0以下版本的pandas,该版本下groupby.max()、groupby.min()仅支持axis、numeric_only两类参数,不接受列名作为位置参数,因此传入'Delta'或者['Delta']都会触发参数数量不匹配的报错
全版本兼容修复方案

改用兼容所有pandas版本的写法即可,两种常用实现方式:

  1. 先从groupby结果中筛选目标列,再调用聚合方法:
# 取Delta列最大值
df2.groupby(['A'])['Delta'].max()
# 取Delta列最小值
df2.groupby(['A'])['Delta'].min()
  1. 用agg方法指定列对应的聚合规则,适合多列执行不同聚合规则的场景:
df2.groupby(['A']).agg({'Delta':'max'})

修改后的完整业务代码如下,可在新旧版本pandas中正常运行:

df3 = df2.merge(df2.groupby(['A'])['Delta'].max().reset_index(),how='left',on='A',suffixes=("","_max")).merge(df2.groupby(['A'])['Delta'].min().reset_index(),how='left',on='A',suffixes=("","_min"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:09:03