伦敦水库水位数据处理:lower_thames_group转float失败求助
伦敦水库水位数据类型转换与绘图报错解决
问题情况
- 导入水库水位数据后,
lower_lee_group列(float类型)能正常绘制图表,但lower_thames_group列(object类型)绘图时提示:"no numerical data to plot"
- 尝试用
df4['lower_thames_group'] = df4['lower_thames_group'].astype(float)转换类型时,报错:ValueError: could not convert string to float: '---'
- 数据总计有5个NA值,分布在上述两个列中
解决方法
1. 读取数据时识别特殊缺失值
问题根源是lower_thames_group列里存在'---'字符串,读取时未被识别为缺失值,导致列类型为object。读取CSV时直接指定na_values参数,把'---'转为NA:
import pandas as pd df4 = pd.read_csv("london_reservoir_levels.csv", na_values='---')
2. 确认数据类型
执行以下代码验证列类型,此时lower_thames_group会自动变为float64类型:
df4.dtypes
3. 处理缺失值(按需操作)
如果绘图需要完整数据,可选择填充或删除缺失值:
- 用均值填充缺失值:
df4['lower_thames_group'] = df4['lower_thames_group'].fillna(df4['lower_thames_group'].mean())
- 删除包含缺失值的行:
df4 = df4.dropna(subset=['lower_thames_group'])
4. 重新绘制图表
现在可以正常绘制lower_thames_group的图表:
df4.plot(x = "month", y = "lower_thames_group")
内容的提问来源于stack exchange,提问作者treetoo
相关产品推荐
相关产品推荐

