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

Pandas groupby计算中位数报错原因及解决方案咨询

Pandas 2.x groupby.median()类型错误问题分析与解决

报错原因

Pandas 2.0版本对聚合函数的行为做了重大调整:在1.x旧版本中,groupby.median()默认只对数值类型列执行计算,会自动跳过字符串等非数值列;但从2.0开始,这类聚合函数默认会遍历DataFrame的所有列,尝试对每一列执行中位数计算。你的DataFrame里包含gender这类非数值字符串列,以及字符串类型的"数值列",这些列无法计算中位数,因此触发类型错误。

解决方法

你可以通过两种方式修复这个问题:

1. 明确指定要计算的目标列

直接在groupby后指定需要计算中位数的int64列,只对目标列执行聚合:

# 替换target_int_column为你实际的int64列名
data.groupby('class')['target_int_column'].median()

2. 使用numeric_only=True参数

这个参数会让Pandas回归旧版本的行为,只对数值类型列执行中位数计算,自动跳过非数值列:

data.groupby('class').median(numeric_only=True)

额外说明

如果你的字符串类型"数值列"也需要参与中位数计算,需要先将其转换为数值类型,比如:

# 将字符串列转为int/float类型,转换失败的会设为NaN
data['num_str_col'] = pd.to_numeric(data['num_str_col'], errors='coerce')
# 再执行聚合
data.groupby('class').median(numeric_only=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 07:55:56