Pandas中groupby按Make列求均值报错TypeError,求解决方法
问题原因及解决方法
报错的核心原因是你要计算均值的列(Price或Odometer)的数据类型为object(字符串类型),而均值计算仅支持数值型(整数/浮点型)数据,所以触发了类型错误。
视频课程里代码能正常运行,是因为课程中的数据集里,数值列被正确识别为数值类型,而你的数据可能存在以下情况:
- 创建DataFrame时,数值被误存为字符串(比如Price列的数值带引号)
- 读取原始数据集时,pandas默认将数值列识别为object类型
- 数值列包含非数字字符(比如价格带$符号、里程带单位)
解决步骤
- 先检查各列的数据类型,确认问题:
car_sales.dtypes
如果Price或Odometer的类型显示为object,就说明是这个问题。
- 将object类型的数值列转换为整数/浮点型:
- 如果是单纯的字符串形式数字,直接转换:
car_sales['Price'] = car_sales['Price'].astype(int) car_sales['Odometer'] = car_sales['Odometer'].astype(int)
- 如果数值带非数字符号(比如$),先清理再转换:
# 示例:去掉Price列的$符号再转类型 car_sales['Price'] = car_sales['Price'].str.replace('$', '').astype(int)
- 重新运行分组求均值的代码:
car_sales.groupby(['Make']).mean()
内容的提问来源于stack exchange,提问作者Tanvir Ahmad Hashmi
相关产品推荐
相关产品推荐

