news 2026/9/5 22:27:46

yfinance 使用教程:三步取到 Yahoo Finance 行情数据,常见故障快速修复

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
yfinance 使用教程:三步取到 Yahoo Finance 行情数据,常见故障快速修复

yfinance 使用教程:三步取到 Yahoo Finance 行情数据,常见故障快速修复

【免费下载链接】yfinanceDownload market data from Yahoo! Finance's API项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance

写 Python 分析股票和基金时,yfinance 帮你直接从 Yahoo Finance 的公开接口免费拉取行情数据:历史价格、财报、基金持仓,几行代码就能拿到一张标准的 pandas 表格。你只要会 pip 装包、会跑 Python,就能照着这篇文章装好它、第一次取数成功,并在报错时花几分钟定位问题。

三步装好,一行验证版本

  1. 安装:pip install yfinance
  2. 修复功能依赖:价格修复要用到 scipy 和 scikit-learn,提前装上:pip install "yfinance[repair]"
  3. 验证安装是否成功:
python -c "import yfinance as yf; print(yf.__version__)"

你应该看到1.6.0。看到版本号就装好了;看到ModuleNotFoundError,说明包没装进当前环境,换一个解释器重跑第 1 步即可。

⚠️ 机器上同时装了 Python 2 和 3 时,用pip3代替pip,否则装错环境。

第一次取数就成功

单只股票,用yf.Ticker("MSFT")创建对象后调history(),默认返回最近 1 个月日线:

import yfinance as yf hist = yf.Ticker("MSFT").history(period="3mo") # 取 3 个月日线 print(hist.tail()) # 应看到含 Open/Close/Adj Close 的表格

一次拿多只,用批量下载,multi_level_index=False把旧版扁平列结构保留下来,方便按列取数:

data = yf.download(["MSFT", "AAPL"], period="1mo", group_by="ticker", multi_level_index=False)

跑完你应看到按日期索引的表格:每只股票一组 Open、High、Low、Close 列。更多写法直接看仓库里的 官方示例代码,13 个脚本对应 13 个场景。

出问题先查这张表

现象可能原因解法
history()返回空表,报YFPricesMissingError(可能已退市)代码写错,或股票已退市yf.Ticker("代码")再取info,无marketCap字段说明代码无效;日期写反也会为空,注意end不含当天
YFRateLimitError:Too Many Requests短时间请求太频繁被 Yahoo 限流每只代码之间time.sleep(2),隔 10 分钟再重试;减少重复请求
repair=True报缺少 scipy / scikit-learn修复依赖是可选包,没装pip install "yfinance[repair]"后重跑,Repaired?列会标出修复过的行
分钟级数据取不到 60 天以前Yahoo 只开放最近 60 天分钟线interval="1h""1d"代替1m
请求超时 / 反复重连当前网络访问不到 Yahoo 接口设置代理yf.config.network.proxy = "http://127.0.0.1:7890"后重跑

海外市场的价格偶有错档(漏了分红调整、币种单位差 100 倍),加repair=True可以自动修复,效果对比见官方 价格修复说明。修复后币种要看history_metadata['currency'],不要信info里的币种。做完后你应该看到Repaired?列出现True标记,且相邻交易日价格不再跳变。

四个动作提升稳定性

  • 批量下载加并发yf.download默认多线程,group_by="ticker"按股票分组,10 只代码一次取完。
  • 长区间用period:优先用period="1y",比手算start/end更省事,也少踩日期边界坑。
  • 缓存目录指到共享盘yf.set_tz_cache_location("custom/cache/location"),减少重复请求;默认路径在 缓存配置说明 里按系统分列。
  • 调试开日志yf.config.debug.logging = True,出问题时能看到每次请求的 URL 和响应,定位更快。

版本变了不慌:自查加一层保护

升级前先自查版本:

import yfinance as yf print(yf.__version__) # 对照 CHANGELOG.rst 看该版本改了什么

接口变更的准确说明都在仓库根目录的 CHANGELOG.rst 里。把取数逻辑包成函数,升级后只改函数内部,业务代码不动:

def fetch(ticker, period="1mo"): try: return yf.Ticker(ticker).history(period=period) except Exception as e: print(e) # 先打印错误,再决定是否兼容旧写法 return None

做完后你应该能在升级前后分别跑print(yf.__version__),并对照 changelog 确认自己用到的参数还在。

收尾速查

我想……直接做
确认装好跑验证命令,应看到1.6.0
取单只股票yf.Ticker("代码").history(period="1mo")
批量取数yf.download([...], group_by="ticker", multi_level_index=False)
数据异常repair=True,看Repaired?
查接口变更打开 CHANGELOG.rst
看现成写法官方示例代码
完整 API 参考官方文档

还卡住?按顺序求助:查 缓存与日志配置 打开调试日志 → 对照 CHANGELOG.rst 确认版本差异 → 阅读 开发指南 了解分支结构后向社区提交问题。

【免费下载链接】yfinanceDownload market data from Yahoo! Finance's API项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/5 22:24:56

解析《天龙八部》客户端源码:从DirectX 9架构到现代游戏开发启示

简介:本资源是《天龙八部》官方客户端第二代启动器(LaunchTLBB)的完整开源实现,面向游戏开发初学者、逆向分析爱好者及C/Qt桌面应用开发者,聚焦客户端启动流程、安全校验与更新机制等核心问题。压缩包共23个文件&#…

作者头像 李华
网站建设 2026/9/5 22:24:11

零基础 5 分钟,免费做出第一条 AI 短视频的完整上手指南

零基础 5 分钟,免费做出第一条 AI 短视频的完整上手指南 【免费下载链接】Pixelle-Video 🚀 AI 全自动短视频引擎 | AI Fully Automated Short Video Engine 项目地址: https://gitcode.com/GitHub_Trending/pi/Pixelle-Video Pixelle-Video 是一…

作者头像 李华
网站建设 2026/9/5 22:14:31

Cesium填挖方分析组件:空间对齐与混合算法工程实践

简介:本资源是一个面向GIS前端开发者的Cesium三维地理信息分析功能组件,聚焦于工程土方量计算中的填挖方分析场景,特别适配需同时处理真实地形与BIM/倾斜摄影模型的项目需求。资源包共4个文件,含2个核心JavaScript模块&#xff08…

作者头像 李华