使用pandas_datareader调用iex数据源报错NotImplementedError求助
解决pandas_datareader使用IEX数据源报错的问题
这个报错的核心原因是pandas_datareader中的旧"IEX"数据源已经被弃用且不再维护,IEX官方已经把公开数据服务迁移到了IEX Cloud,需要通过API密钥才能访问数据。下面给你两种可行的解决方案:
方案一:使用IEX Cloud(官方推荐)
更新pandas_datareader到最新版本
旧版本的pandas_datareader可能没有支持IEX Cloud的接口,先通过pip更新:pip install --upgrade pandas-datareader获取IEX Cloud API密钥
去IEX Cloud平台注册一个免费账号,就能拿到你的公开API密钥(免费额度足够个人日常使用)。修改代码适配IEX Cloud
把数据源改为iexcloud,并传入你的API密钥:import pandas_datareader.data as web import datetime # 替换成你自己的IEX Cloud公开API密钥 IEX_API_KEY = 'your_public_api_key' start = datetime.datetime(2015, 1, 1) end = datetime.datetime(2017, 1, 1) # 使用iexcloud数据源获取FB数据 facebook = web.DataReader('FB', 'iexcloud', start, end, api_key=IEX_API_KEY) print(facebook.head())
方案二:使用替代数据源(无需API密钥)
如果不想注册API密钥,可以用yfinance(原Yahoo Finance数据源的替代库,目前维护状态良好):
安装yfinance
pip install yfinance编写获取数据的代码
import yfinance as yf import datetime start = datetime.datetime(2015, 1, 1) end = datetime.datetime(2017, 1, 1) # 下载FB的股票数据 facebook = yf.download('FB', start=start, end=end) print(facebook.head())
补充说明
你之前遇到的NotImplementedError: data_source='iex' is not implemented,是因为pandas_datareader已经移除了旧的无认证IEX数据源接口,现在只能通过IEX Cloud的认证接口访问,或者选择其他第三方数据源。
内容的提问来源于stack exchange,提问作者Oscar Bomboscar
相关产品推荐
相关产品推荐

