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

Pandas 2.0.3调用df.mean()报错,0.23.3无此问题的原因?

Pandas 2.0.3调用df.mean()报错的原因解析

版本间的核心行为差异

  • Pandas 0.23.3里,df.mean()会自动跳过非数值型列,只对能计算均值的数值列处理,哪怕DataFrame里混着字符串列,也不会触发类型转换错误。
  • Pandas 2.0.3(属于2.x系列)对数据类型的校验逻辑更严格:df.mean()会尝试遍历所有列计算均值,如果某列包含字符串且无法转成数值,直接抛出ValueError: could not convert string to float。

为什么df.describe().mean()能正常运行?

df.describe()默认只针对数值型列生成统计数据(比如均值、标准差等),自动过滤掉非数值列。后续调用.mean(),只是对这些统计结果里的数值再求均值,全程碰不到字符串列的类型转换问题,所以不会报错。

更直接的解决方案

如果不想绕弯子用describe(),可以直接用这两种方式:

  1. 只筛选数值列计算:df.select_dtypes(include='number').mean()
  2. 给mean()加参数指定只处理数值:df.mean(numeric_only=True)(Pandas 1.0及以上版本支持)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 22:44:52