news 2026/9/5 23:34:13

yfinance 数据导出实战指南:四步把股价与财报变成 CSV/Excel

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
yfinance 数据导出实战指南:四步把股价与财报变成 CSV/Excel

yfinance 数据导出实战指南:四步把股价与财报变成 CSV/Excel

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

周五下午四点,周报要附一份一年股价数据,你手里却只有终端里的一串数字。

yfinance 股票数据导出解决这个问题:三行代码,就能把 Yahoo Finance 的行情变成可直接发邮箱附件的 CSV 或 Excel 文件,全程只要几分钟。下面从单只股票到无人值守,四步走完常用的 yfinance 数据导出路径。

这篇文章你能带走什么

  • 3 行代码拿到一年股价,存成 CSV
  • 利润表、资产负债表、现金流量表合并进一个 Excel
  • 多只股票一次性下载,各自导出独立文件
  • 几行脚本加系统定时任务,实现无人值守导出

单只股票:把一年股价落盘

安装一行命令搞定:pip install yfinance。拿到数据靠 Ticker 对象,存盘靠 to_csv:

import yfinance as yf apple = yf.Ticker("AAPL") hist = apple.history(period="1y") # 一年日线,period 也可写 "3mo"、"5y" hist.to_csv("aapl_1y.csv")

生成的 CSV 包含 Date、Open/High/Low/Close、Volume 等列,价格默认已复权;想看原始价格就给 history 传auto_adjust=False。history 的完整实现在 yfinance/ticker.py。

多张表:三张财务报表合并进一个 Excel

income_stmt 这类属性返回的都是 pandas DataFrame,用 ExcelWriter 各占一个工作表写进去即可:

import yfinance as yf import pandas as pd msft = yf.Ticker("MSFT") with pd.ExcelWriter("msft_financials.xlsx") as writer: msft.income_stmt.to_excel(writer, sheet_name="Income Statement") msft.balance_sheet.to_excel(writer, sheet_name="Balance Sheet") msft.cash_flow.to_excel(writer, sheet_name="Cash Flow")

这三个属性都定义在 Ticker 类里,想要季度口径的表,把属性名前面加 quarterly_ 前缀即可。

批量:多只股票一次下载

方式一是把代码用空格拼成字符串交给 yf.download,得到一个多列索引的大表:

import yfinance as yf data = yf.download("SPY AAPL", period="1mo") data.to_csv("spy_aapl_1mo.csv")

这段就是官方示例 doc/source/reference/examples/download.py 的内容。方式二适合要独立文件的场景,用 Tick

ers 逐个导出:

import yfinance as yf tickers = yf.Tickers("AAPL MSFT GOOG") for t in tickers.tickers: df = t.history(period="3mo") df.to_csv(f"{t.ticker}_3mo.csv")

Tickers 的更多用法见 doc/source/reference/examples/tickers.py。

无人值守:定时自动导出

把导出逻辑写进脚本,交给系统定时任务按点执行:

# export_daily.py import datetime as dt import yfinance as yf for sym in ["AAPL", "MSFT"]: df = yf.Ticker(sym).history(period="1mo") df.to_csv(f"{sym}_{dt.date.today():%Y%m%d}.csv")
# crontab -e,每个工作日 18 点执行 0 18 * * 1-5 cd ~/stock_data && python export_daily.py

第二天早上打开目录,前一天的 CSV 已经躺在里面。Windows 上把 crontab 换成任务计划程序,写法同理。

避坑:三个高频问题

CSV 用 Excel 打开中文乱码。修法:hist.to_csv("数据.csv", encoding="utf_8_sig"),带 BOM 后 Excel 就能正确识别。

财务报表导出后是双行表头,列名对不齐。修法:msft.income_stmt.reset_index().to_excel("x.xlsx"),把行索引降成普通列。

某天价格突然跳 90%,或整段缩到原来的 1/100。先看是不是分红、拆股日:修复前原始价有明显缺口,复权列(Adj Close)应当连续——

另一种典型是计价单位出错,整段价格被放大或缩小 100 倍:

history 默认auto_adjust=True;若原始数据仍有异常,在 yf.download 里加repair=True自动修复,规则细节写在 doc/source/advanced/price_repair.rst。另外记住一条硬限制:分钟级数据只能取最近 60 天,长周期分析请先用日线。

现在就可以动手

把第一段的代码贴进终端跑一遍,一分钟后你手上就有一个 CSV。更多用法看官方示例目录 doc/source/reference/examples/ 和文档入口 doc/source/index.rst。

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

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

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

如何免费用上霞鹜文楷:3步装好免费开源中文字体

如何免费用上霞鹜文楷:3步装好免费开源中文字体 【免费下载链接】LxgwWenKai An open-source Chinese font derived from Fontworks Klee One. 一款开源中文字体,基于 FONTWORKS 出品字体 Klee One 衍生。 项目地址: https://gitcode.com/GitHub_Tren…

作者头像 李华
网站建设 2026/9/5 23:25:30

基于51单片机的智能养生壶控制系统设计:从硬件选型到PID算法进阶

简介:本资源是一套面向电子类专业本科生与单片机初学者的家用养生壶智能控制系统完整设计资料,基于51单片机实现多模式温控与自动化管理,解决传统养生壶功能单一、操作繁琐、缺乏定时保温等实际痛点,适用于课程设计、毕业设计及嵌…

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

欧姆龙NJ501无协议串口通信接收完整教程

在做欧姆龙 NJ501 项目时,很多朋友会遇到一个“看起来不难,实际一调试就卡住”的需求:让 PLC 通过串口接收扫码枪、仪表、传感器或者第三方控制器主动发来的数据。网上关于欧姆龙串口通信的例子,大部分集中在 CP1H、CP1L 这类小型…

作者头像 李华
网站建设 2026/9/5 23:20:40

基于协同过滤的Python音乐推荐系统实现与工程落地

很多做 Python 毕业设计的同学,看到“推荐系统”四个字,第一反应是先去找算法公式,第二反应是担心“数学不好能不能做”。实际上,毕设里的推荐系统并没有那么神秘。它最核心的协同过滤思想,翻译成大白话就是一句话&…

作者头像 李华