使用pandas_datareader调用雅虎财经接口出现KeyError: 'Date'报错如何解决
问题解决方案
核心问题根源
- 雅虎财经接口规则升级,旧版
pandas_datareader原生提供的yahoo数据源已无法正常解析返回数据,内部解析时找不到预期的Date字段触发报错 - 你的股票代码列表中苹果公司的代码拼写错误,正确代码为
AAPL,你写的是APPL
具体解决步骤
- 先安装适配雅虎新接口的依赖库,执行命令:
pip install yfinance
- 修改你的代码,增加yfinance对pandas_datareader的补丁,同时修正股票代码,修改后完整代码如下:
import pandas as pd import pandas_datareader as web import matplotlib.pyplot as plt import yfinance as yf # 打补丁适配雅虎新接口 yf.pdr_override() %matplotlib inline # 修正苹果股票代码为AAPL portfolio = ["FB", "AMZN", "AAPL", "NFLX", "GOOG" ] start = "2018-01-01" end = "2020-01-01" df = pd.DataFrame() for asset in portfolio: df[asset] = web.DataReader(asset, start = start, end = end)["Adj Close"] df
- 重新运行代码即可正常拉取对应股票的调整后收盘价数据。
内容的提问来源于stack exchange,提问作者BenjaminDiLorenzo
相关产品推荐
相关产品推荐

