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

使用Pandas Datareader加载雅虎财经苹果股票数据遇OverflowError求助

错误原因分析
  1. 时间范围超出系统API支持区间:Windows系统下time.mktime()函数仅支持处理1970年1月1日至2038年1月19日之间的时间戳,若你的start变量设置的时间早于1970年,就会触发该溢出错误。
  2. Pandas Datareader的Yahoo接口已停止维护:官方pandas-datareader对Yahoo Finance的数据源支持早已废弃,即便使用yf.override()做兼容,仍存在时间处理逻辑的兼容性问题。
  3. 代码语法错误:原代码中AAPL.df应为AAPL_df(变量命名错误),且[Adj Close]未加引号,会被解释为未定义的变量,后续会引发NameError。
解决方案

最优方案:直接使用yfinance库替代

yfinance是专门维护的Yahoo Finance数据获取工具,兼容性和稳定性远优于已废弃的pandas-datareader Yahoo接口,代码示例:

import yfinance as yf
import pandas as pd

# 设置合理的时间范围(AAPL上市于1980年12月12日,确保在系统支持区间内)
start_date = '1980-12-12'
end_date = pd.Timestamp.today()

# 获取数据并完成月度重采样、填充、计算涨跌幅
aapl_df = yf.download('AAPL', start=start_date, end=end_date)['Adj Close'].resample('M').ffill().pct_change()

备选方案:修正时间范围(若坚持用pandas-datareader)

  1. 确保start变量对应的日期在1970年1月1日之后,例如:
    start = '1970-01-01'
    
  2. 注意:即便修正时间,pandas-datareader的Yahoo接口仍可能出现其他请求失败问题,不推荐长期使用。

语法错误修正

原代码需调整两处:

  • 将AAPL.df改为AAPL_df(符合Python变量命名规范)
  • 将[Adj Close]改为['Adj Close'](用字符串索引DataFrame列)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 16:24:19