Python中Titanic数据集groupby.mean()方法无法正常运行的问题
解决Titanic数据集groupby.mean()报错问题
问题原因
报错核心是 TypeError: Could not convert ... to numeric,说明你的DataFrame ks_cl 中存在非数值类型的列(比如包含字符串的列,如cabin、ticket等),而groupby.mean()默认会尝试对所有列计算均值,当遇到无法转为数值的字符串列时就会抛出该错误。
解决方案
方法1:只对数值列计算均值
使用numeric_only=True参数,让pandas仅针对数值型列执行均值计算:
ks_cl.groupby(['sex']).mean(numeric_only=True)
方法2:指定目标列计算均值
如果只需要特定列的分组均值,可明确列出目标列,比如只计算存活状态、年龄、票价的均值:
ks_cl.groupby(['sex'])[['survived', 'age', 'fare']].mean()
辅助检查步骤
- 查看数据集各列的数据类型,确认非数值列:
ks_cl.dtypes
- 查看非数值列的样本内容,验证是否为预期的字符串列:
# 示例:查看cabin列的10条样本数据 ks_cl['cabin'].sample(10)
内容的提问来源于stack exchange,提问作者Muhammad Ali Siddiqui
相关产品推荐
相关产品推荐

