如何修复pandas_datareader中的“datetime.datetime is not implemented”错误
解决pandas_datareader的NotImplementedError问题
嘿,我一眼就瞅出问题出在哪了,咱们一步步来把它搞定:
错误核心原因
pandas_datareader.data.DataReader的参数顺序你搞反啦!这个方法的正确参数结构是:
data.DataReader(name, data_source, start=None, end=None, ...)
你直接把start日期放在了第二个参数的位置,程序误以为这是你要使用的数据源,自然会抛出NotImplementedError——毕竟日期肯定不是合法的数据源嘛。
还有几个小细节要修正
- 你要获取Facebook的数据,但代码里写的
'F'是福特汽车的股票代码,Facebook现在的股票代码是'META'(之前叫FB,2022年完成改名)。 - matplotlib的导入有误,应该导入
matplotlib.pyplot而不是整个matplotlib库,否则后续没法正常绘图。 - 建议明确指定数据源(比如
'yahoo'),避免默认数据源变动带来的问题。
修正后的完整代码
import pandas as pd import datetime as dt import pandas_datareader.data as data import matplotlib.pyplot as plt # 修正导入方式 from matplotlib import style style.use('fivethirtyeight') start = dt.datetime(2019, 1, 7) end = dt.datetime(2019, 5, 4) # 修正参数顺序,指定数据源为yahoo,股票代码改为META att = data.DataReader('META', 'yahoo', start, end) print(att.head()) # 额外加个绘图示例,验证功能正常 att['Close'].plot() plt.title('META Stock Price (2019 Jan-May)') plt.show()
运行说明
运行这段代码前,确保你已经安装了最新版的依赖包,如果没装的话可以用下面的命令安装:
pip install --upgrade pandas-datareader matplotlib
内容的提问来源于stack exchange,提问作者arturo salmi
相关产品推荐
相关产品推荐

