创建并清洗后的DataFrame调用plot绘图空白,求解决方法
Pandas序列绘图空白的解决方法
问题根源
你执行lf.dropna()后没有将清洗结果重新赋值给lf——Pandas的dropna()默认返回新对象,不会修改原变量,因此原lf仍包含缺失值,导致绘图无数据显示。
修复代码
将缺失值清洗的结果保存回lf:
# 方法1:分步赋值 lf = (wf['WALCL'] - (rf['RRPONTSYD'] + tf['WTREGEN'])) lf = lf.dropna() # 关键:把清洗后的数据重新赋值给lf # 方法2:链式调用一步完成 lf = (wf['WALCL'] - (rf['RRPONTSYD'] + tf['WTREGEN'])).dropna()
验证与重绘
- 先确认数据状态:
print(lf.info()) # 查看非空值数量是否为261 print(lf.head()) # 确认数据格式正常
- 重新执行绘图代码:
lf.plot(figsize=(15,3), legend=False, style='k', title='Liabilities')
额外排查(若上述方法无效)
- 检查索引是否为datetime类型:
print(lf.index.dtype) # 若不是,转换后再绘图 import pandas as pd lf.index = pd.to_datetime(lf.index)
- 检查数值是否存在异常值:
import numpy as np print(lf.describe()) # 替换无穷值并再次清洗 lf = lf.replace([np.inf, -np.inf], np.nan).dropna()
内容的提问来源于stack exchange,提问作者KChemist
相关产品推荐
相关产品推荐

