Python(Pandas)读取电力数据集计算列最大值返回问号求助
问题根因
- 目标数据集的缺失值使用
?作为占位符,读取数据时未指定该占位符,导致Global_active_power列被识别为字符串(object)类型,未被解析为数值类型 - 字符串类型调用
max()方法时按ASCII码排序比较,?的ASCII码高于0-9的数字字符,因此返回结果为?
修复代码
直接在读取阶段指定缺失值标记即可:
import pandas as pd data = pd.read_table( 'household_power_consumption.txt', sep=';', low_memory=False, header=0, index_col=False, parse_dates=[0], na_values='?' # 新增参数,将?识别为缺失值 ) col = data["Global_active_power"] # 若仍存在类型问题,可追加一行强制转数值:col = pd.to_numeric(col, errors='coerce') max_value = col.max() print(max_value)
补充验证
可以输出列类型确认修复效果:print(col.dtype),修复后正常输出为float64,计算最大值时会自动忽略缺失值,返回正确的数值结果。
内容的提问来源于stack exchange,提问作者北科大-Minh Tung Doan
相关产品推荐
相关产品推荐

