Python绘制DataFrame图表无法识别数据类型报错如何解决?
错误原因
- 库版本不兼容:这是该错误最高发的原因,通常为numpy版本过高,和当前安装的pandas、matplotlib版本不适配。比如使用numpy≥1.24版本时,配套的pandas版本低于1.5.3、或matplotlib版本低于3.6,就会触发dtype解析异常。
- 数据类型异常:如果你近期对
df做过数据清洗、拼接等操作,可能导致列的数据类型从标准数值型(float/int)转为object类的numpy泛型,绘图库无法识别该类型就会抛出错误。
修复方案
- 优先适配库版本
首先查看当前三个依赖库的版本:
import numpy, pandas, matplotlib print(numpy.__version__) print(pandas.__version__) print(matplotlib.__version__)
确认版本不兼容后,二选一执行适配操作:
- 降级numpy到稳定兼容的1.23.5版本:
pip install numpy==1.23.5
若使用conda环境,执行:conda install numpy=1.23.5 - 升级pandas和matplotlib到适配高版本numpy的最新版:
pip install --upgrade pandas matplotlib
- 修正DataFrame数据类型
如果版本适配后仍然报错,检查各列的数据类型:
执行print(df.dtypes),如果存在非数值类型的列,执行强制类型转换:
import pandas as pd # 所有列转为float64类型,无法转换的值设为NaN for col in df.columns: df[col] = pd.to_numeric(df[col], errors='coerce')
额外说明:你代码中的rot=True参数写法不规范,rot参数需要传入整数代表标签旋转角度,旧版本会自动将True转为1避免报错,新版本可能会触发额外异常,建议改为你需要的数值,比如水平显示标签用rot=0,倾斜45度用rot=45。
内容的提问来源于stack exchange,提问作者LostinSpatialAnalysis
相关产品推荐
相关产品推荐

