You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用DataFrame/Series的plot()方法报错:NameError: name '_converter' is not defined

Fixing NameError: name '_converter' is not defined in Pandas 1.x + Python 3.6

我之前在Python 3.6环境下用Pandas的plot()方法时,也碰到过一模一样的NameError,折腾了一阵终于找到根源和解决办法,分享给你:

核心原因

这个错误本质是Python 3.6的兼容性限制:Pandas从1.2.0版本开始就不再支持Python 3.6了,如果你装的是Pandas 1.2+版本,在Python 3.6里运行时,内部的_converter模块(负责处理日期轴的转换)会因为版本不兼容无法被正确导入。另外,matplotlib版本过高也会和旧版Pandas/3.6环境冲突。


解决方案(按优先级排序)

1. 降级Pandas到兼容Python 3.6的版本

这是最彻底的解决办法,Python 3.6最高支持Pandas 1.1.x系列,推荐安装1.1.5版本:

# 先卸载当前版本
pip uninstall pandas -y
# 安装兼容版本
pip install pandas==1.1.5

2. 手动导入Pandas的转换器模块

如果不想降级Pandas,可以在代码开头手动导入_converter模块,强制加载它:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 手动导入并初始化转换器
from pandas.plotting import _converter
_converter._WARN = False

ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts = ts.cumsum()
ts.plot()
plt.show()  # 记得加上这个显示图像

3. 同步降级matplotlib到兼容版本

如果上面两步还不行,检查matplotlib版本——matplotlib从3.4.0开始也不再支持Python 3.6了,建议安装3.3.4版本:

pip install matplotlib==3.3.4

验证方法

运行修改后的代码后,如果能正常弹出折线图,就说明问题解决了。如果还是报错,可以检查一下当前的版本:

import sys
import pandas as pd
import matplotlib

print(pd.__version__)
print(matplotlib.__version__)
print(sys.version)

确保Pandas是1.1.x,matplotlib是3.3.x,Python是3.6.x。

内容的提问来源于stack exchange,提问作者wilson_smyth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:48:43