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

Pandas分组报错:'StringDtype'对象无'storage'属性问题咨询

Pandas groupby+mean()遇StringDtype列报AttributeError的解决办法

问题场景

处理大型DataFrame时,执行以下代码:

df.groupby(['id_column'])['weight'].mean()

当id_column为StringDtype类型时,触发错误:

AttributeError: 'StringDtype' object has no attribute 'storage'

但将该列转为float类型,或缩小DataFrame为单日/单ID的子集时,代码可正常运行。当前环境版本:

  • Pandas 版本:1.2.5
  • 其他依赖版本:1.22.3

问题原因

这是Pandas 1.2.x版本的已知bug:旧版本对StringDtype类型列的groupby聚合逻辑存在兼容性问题,仅在处理大数据量时触发(小数据集会走不同的计算分支,因此不会报错)。

解决方案

1. 临时规避(无需升级)

将StringDtype类型的id_column转为object类型,再执行groupby操作:

# 转换列类型
df['id_column'] = df['id_column'].astype(object)
# 执行聚合计算
df.groupby(['id_column'])['weight'].mean()

2. 根本解决(推荐)

升级Pandas到1.3.0及以上版本,该bug在1.3.x版本已被官方修复。执行升级命令:

pip install --upgrade pandas

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:01:08