Python下载行情代码(Ticker)时出现Key Error 'date'问题求助
解决KeyError 'date'及代码中的问题
问题原因及修复步骤:
- 修正Ticker拼写错误:代码里
tickers列表中的appl是错误的,苹果公司的正确行情代码是aapl,错误代码可能导致返回的数据格式异常,触发KeyError。 - 定义日期变量:代码中
s和e未赋值,需要先明确起始和结束日期,用datetime模块生成具体的日期对象。 - 适配Yahoo数据源:
pandas_datareader的Yahoo数据源目前存在兼容性问题,推荐使用yfinance库替代,它是专门针对Yahoo Finance的第三方库,稳定性更强。
修正后的代码示例:
先安装yfinance(未安装的话执行以下命令):
pip install yfinance
替换后的Python代码:
import pandas as pd import numpy as np import datetime as dt import math import yfinance as yf import matplotlib.pyplot as plt stock_prices = pd.DataFrame() # 修正Ticker拼写,定义日期范围 tickers = ['tsla', 'aapl', 'msft', 'goog', '^IXIC'] s = dt.datetime(2020, 1, 1) e = dt.datetime(2023, 12, 31) # 使用yfinance下载数据 for ticker in tickers: data = yf.download(ticker, start=s, end=e) stock_prices[ticker] = data['Adj Close'] # 打印前几行验证数据 print(stock_prices.head())
额外说明:
如果坚持使用pandas_datareader,需要安装适配版本并设置兼容参数,但yfinance是当前更可靠的选择。
内容的提问来源于stack exchange,提问作者Carlos ZL
相关产品推荐
相关产品推荐

