news 2026/9/5 18:42:05

yfinance 快速上手指南:用 Python 拉取雅虎财经行情数据

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
yfinance 快速上手指南:用 Python 拉取雅虎财经行情数据

yfinance 快速上手指南:用 Python 拉取雅虎财经行情数据

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

如果你写过几行 pandas,就想把股票的历史价格、财务报表或实时行情装进 DataFrame,那 yfinance 就是干这个的。它是一个 Python 库,专门从雅虎财经的公开 API 下载市场数据——pip一条命令装好,几行代码就能跑起来。

30 秒了解项目 🧭

它不是交易软件,而是数据工具:把雅虎财经上的行情、财报、期权数据变成 pandas 表格,方便你用 Python 继续加工。适合做金融研究、写分析脚本的 Python 新手和普通开发者。

核心价值:3 行代码,把一只股票一整年的日线数据装进一个 DataFrame。

三步上手:yfinance 安装与快速上手 📦

第 1 步,安装。在终端执行:

pip install yfinance

第 2 步,拉数据。这就是最短的可用示例:

import yfinance as yf msft = yf.Ticker("MSFT") hist = msft.history(period="1y") print(hist.tail())

第 3 步,当表格用。返回的就是标准 pandas DataFrame,hist["Close"].mean()这类操作直接可用。到这里,你已经会用它拉历史行情了。

它能帮你做什么 🎯

常用入口一览:

你想做的事入口
查一只票yf.Ticker
一批票逐个查yf.Tickers
批量下载行情yf.download
实时盯盘yf.WebSocket/yf.AsyncWebSocket
搜代码、查资讯yf.Search

拉一只股票的历史行情:3 行 Python 代码

Ticker对象几乎包办单只股票的所有事:

  • history(period="1y")拉日线,也能换interval="1h"拉小时线;
  • balance_sheetcashflow拿资产负债表和现金流;
  • info是公司概况,option_chain(...)拿期权链。

属性直接取,不用关心背后的请求细节。

批量下载多只股票的行情数据

一个字符串里空格隔开代码即可:

data = yf.download("SPY AAPL", period="1mo")

想要每只票的列分开放,传group_by="ticker";票多的时候加threads=True开多线程,速度明显更快。

实时盯盘:订阅 WebSocket 行情推送

def handler(message): print(message) with yf.WebSocket() as ws: ws.subscribe(["AAPL", "BTC-USD"]) ws.listen(handler)

AsyncWebSocket可以写进 async 程序里,用法基本一致。

雅虎的数据不干净?用 repair 自动修复

非美国市场的数据经常出问题:分红没调整、拆股没处理,甚至美元/便士搞混导致价格差 100 倍。加个repair=True参数,yfinance 会尝试自动修复,还会多出一列Repaired?标记被改过的行:

不知道代码?先搜一下

yf.Search("AAPL", max_results=10).quotes能返回匹配的报价列表,.news拿相关新闻,适合当代码字典用。

一个真实例子:用组合权重算年化收益 📈

痛点:你手上有四只票,每月想算一次组合收益和波动率,手动对表太费劲。

解法:批量下载收盘价,交给 pandas 算。

import yfinance as yf weights = {"AAPL": 0.3, "MSFT": 0.25, "GOOGL": 0.25, "AMZN": 0.2} prices = yf.download(" ".join(weights), period="1y")["Close"] returns = prices.pct_change().dropna() port = returns @ list(weights.values()) print("年化收益:", port.mean() * 252, " 年化波动:", port.std() * 252**0.5)

效果:两行数字就是组合的年化收益与年化波动率,数据还能直接喂给后续的画图或回测流程。

避坑提醒 ⚠️

  • yfinance 是非官方开源工具,与雅虎没有关联,数据使用权以雅虎的使用条款为准。
  • 雅虎 API 仅面向个人使用,别拿它当商业产品的数据源。
  • 非美国市场数据质量更差,建议加repair=True,尤其拉伦敦、港股的票时。
  • 查币种以Ticker.history_metadata['currency']为准,别信Ticker.info
  • 返回数据依赖 pandas 和 numpy,这两个库必须先装好。
  • 控制请求频率,别写死循环一口气打上千只票,容易把自己封了。

yfinance 干的就是把雅虎财经的数据搬进 Python 这件事——装好它,你离第一张行情表只差三行代码。接下来建议翻翻仓库里的 doc/source/reference/ 目录,每个组件都配了可直接运行的示例脚本,照着抄一遍基本就熟了。

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

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

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

OmniParser 屏幕解析工具教程:5步把截图变成结构化UI元素

OmniParser 屏幕解析工具教程:5步把截图变成结构化UI元素 【免费下载链接】OmniParser A simple screen parsing tool towards pure vision based GUI agent 项目地址: https://gitcode.com/GitHub_Trending/omn/OmniParser 想让视觉模型"看懂屏幕再动手…

作者头像 李华
网站建设 2026/9/5 18:28:50

基于YOLOv5与树莓派的危险驾驶行为检测系统全栈实现指南

简介:这是一套面向嵌入式AI初学者与毕设/课设学生的驾驶员危险驾驶行为检测预警系统实战项目,基于YOLOv5深度学习模型实现疲劳驾驶、打电话、抽烟等行为识别,并完成在树莓派平台的轻量化部署。资源共105个文件,涵盖39个核心Python…

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

【MybatisPlus】SpringBoot3整合MybatisPlus

目录 一、依赖 二、yml 配置 三、xml 配置 四、config 配置 五、使用 实体类 Mapper.java Service.java ServiceImpl.java Mapper.xml 六、逻辑删除 一、依赖 <!-- springboot3 / mybatis-plus 配置&#xff0c;mybatis使用 3.5.16 版本&#xff0c;避免版本冲突…

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

如何免费安装霞鹜文楷:新手完整指南

如何免费安装霞鹜文楷&#xff1a;新手完整指南 【免费下载链接】LxgwWenKai An open-source Chinese font derived from Fontworks Klee One. 一款开源中文字体&#xff0c;基于 FONTWORKS 出品字体 Klee One 衍生。 项目地址: https://gitcode.com/GitHub_Trending/lx/Lxg…

作者头像 李华