0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

yfinance:获取数据的Python第三方模块

对面小姐姐 来源:Python实用宝典 作者:Python实用宝典 2023-10-21 14:32 次阅读

yfinance 是一个使用 Yahoo! 获取数据的 Python 第三方模块。它支持获取最细到1分钟级的历史数据及股票基本面数据,是免费获得美股分钟级及以上粒度数据的不二之选。

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南 进行安装。

**(可选1) **如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda,它内置了Python和pip.

**(可选2) **此外,推荐大家用VSCode编辑器,它有许多的优点:Python 编程的最好搭档—VSCode 详细指南

请选择以下任一种方式输入命令安装依赖

  1. Windows 环境 打开 Cmd (开始-运行-CMD)。
  2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。
  3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install yfinance

2.yfinance 基本使用

通过yfinance你可以使用一样命令下载任意美股股票的数据,比如:

import yfinance as yf

# 单股
data = yf.download("AAPL", start="2017-01-01", end="2017-04-30")
# Open High Low Close Adj Close Volume
# Date
# 2017-01-03 28.950001 29.082500 28.690001 29.037500 27.257641 115127600
# 2017-01-04 28.962500 29.127501 28.937500 29.004999 27.227135 84472400
# 2017-01-05 28.980000 29.215000 28.952499 29.152500 27.365593 88774400
# 2017-01-06 29.195000 29.540001 29.117500 29.477501 27.670671 127007600
# 2017-01-09 29.487499 29.857500 29.485001 29.747499 27.924126 134247600
# ......

# 多股
data = yf.download("SPY AAPL", start="2017-01-01", end="2017-04-30",
                   group_by="ticker")
# AAPL ... SPY
# Open High Low Close ... Low Close Adj Close Volume
# Date ...
# 2017-01-03 28.950001 29.082500 28.690001 29.037500 ... 223.880005 225.240005 205.509079 91366500
# 2017-01-04 28.962500 29.127501 28.937500 29.004999 ... 225.610001 226.580002 206.731735 78744400
# 2017-01-05 28.980000 29.215000 28.952499 29.152500 ... 225.479996 226.399994 206.567459 78379000
# 2017-01-06 29.195000 29.540001 29.117500 29.477501 ... 225.899994 227.210007 207.306549 71559900
# ......

默认是获取天级别的数据,如果你需要获取分钟级的,只需要添加interval参数

import yfinance as yf

# 单股
data = yf.download("AAPL", start="2022-05-18", end="2022-05-23", interval="1m")
print(data)

# Open High Low Close Adj Close Volume
# Datetime
# 2022-05-17 12:00:00-04:00 148.000000 148.050003 147.839996 147.865005 147.865005 0
# 2022-05-17 12:01:00-04:00 147.869507 147.919998 147.779999 147.889893 147.889893 123746
# 2022-05-17 12:02:00-04:00 147.889999 147.929993 147.750000 147.907394 147.907394 92847
# 2022-05-17 12:03:00-04:00 147.904999 147.929993 147.785004 147.839996 147.839996 79266
# 2022-05-17 12:04:00-04:00 147.839996 147.895004 147.779999 147.860001 147.860001 58905
# ......

它支持的分钟级参数有:1m,2m,5m,15m,30m,60m,90m 等等。

此外还支持小时级和天线、周线、月线级别:1h,1d,5d,1wk,1mo,3mo 等等。

获取到的数据类型就是Dataframe,因此你还可以直接保存为csv文件:

# 公众号:Python 实用宝典
import yfinance as yf

data = yf.download("AAPL", start="2022-05-18", end="2022-05-23", interval="1m")
data.to_csv("aapl_20220518_20220523.csv")
# 保存到本地,命名为 aapl_20220518_20220523.csv

3.通过yfinance获取股票基本数据

如果你需要获取一只股票的基本数据,如市值、市盈率、股息等,你可以通过定义一只股票的Ticker,利用其info属性获取:

# 公众号:Python 实用宝典
import yfinance as yf

aapl = yf.Ticker("aapl")
print(aapl.info)
# {'zip': '95014', 'sector': 'Technology', 'fullTimeEmployees': 154000, 'longBusinessSummary': 'Apple ......

这个字典比较长,这里省略显示了,里面包含了比如市盈率(PE)等信息

# 公众号:Python 实用宝典
import yfinance as yf

aapl = yf.Ticker("aapl")
aapl.info['forwardPE']
# 20.974085

你还可以获取每次派息数据:

# 公众号:Python 实用宝典
import yfinance as yf

aapl = yf.Ticker("aapl")
print(aapl.dividends)
# Date
# 1987-05-11 0.000536
# 1987-08-10 0.000536
# 1987-11-17 0.000714
# 1988-02-12 0.000714
# 1988-05-16 0.000714
# ...
# 2021-05-07 0.220000
# ... ...

获取资产负债表:

# 公众号:Python 实用宝典
import yfinance as yf

aapl = yf.Ticker("aapl")
print(aapl.balancesheet)
# 2021-09-25 2020-09-26 2019-09-28 2018-09-29
# Total Liab 2.879120e+11 2.585490e+11 2.480280e+11 2.585780e+11
# Total Stockholder Equity 6.309000e+10 6.533900e+10 9.048800e+10 1.071470e+11
# Other Current Liab 5.357700e+10 4.786700e+10 4.324200e+10 3.929300e+10
# Total Assets 3.510020e+11 3.238880e+11 3.385160e+11 3.657250e+11
# Common Stock 5.736500e+10 5.077900e+10 4.517400e+10 4.020100e+10
# ......

现金流数据:

# 公众号:Python 实用宝典
import yfinance as yf

aapl = yf.Ticker("aapl")
print(aapl.cashflow)
# 2021-09-25 2020-09-26 2019-09-28 2018-09-29
# Investments -2.819000e+09 5.335000e+09 5.809300e+10 3.084500e+10
# Change To Liabilities 1.400200e+10 -1.981000e+09 -2.548000e+09 9.172000e+09
# Total Cashflows From Investing Activities -1.454500e+10 -4.289000e+09 4.589600e+10 1.606600e+10
# ......

新闻数据:

# 公众号:Python 实用宝典
import yfinance as yf

aapl = yf.Ticker("aapl")
print(aapl.news)
# [{'uuid': '476a41c6-c6dc-3050-9b8f-c3777c8485b2', 'title': "Dow Jones Futures Rise After 'Hard' Reality Hits Market; What To Do Now", 'publisher': "Investor's Business Daily",
# 'link': 'https://finance.yahoo.com/m/476a41c6-c6dc-3050-9b8f-c3777c8485b2/dow-jones-futures-rise-after.html',
# 'providerPublishTime': 1653305573, 'type': 'STORY'}, {'uuid': '721d466d-5394-3f3c-a9c3-b0920d44c7f3' ......

总之,有了yfinance这个神器,除了高频数据你无法获取之外,其他的美股数据你都能获取得到,有需要的小伙伴可以试试,非常好用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2486

    浏览量

    46548
  • 数据
    +关注

    关注

    8

    文章

    6514

    浏览量

    87610
  • python
    +关注

    关注

    51

    文章

    4678

    浏览量

    83476
收藏 人收藏

    评论

    相关推荐

    Labview如何内嵌操作第三方EXE程序!

    自己在网上搜了下相关资料,能把第三方EXE内嵌进入容器里,但是有个问题,这个第三方软件必须手动拖到容器正中间,手动最大化。请问有什么方法可以自动实现吗? 下图是我内嵌的POLL 软件。如图!
    发表于 04-18 14:26

    如何打开第三方软件

    请问大神们 谁知道如何在Labview中 打开第三方软件,我现在想打开工程后 自动打开USB视频采集卡,然后就直接显示出采集卡采集到的图像了请问如何打开在这先谢过了
    发表于 09-11 16:26

    如何把第三方库加到PROTEUS中?

    新手求教,弱弱的问下,下了一个第三方库,说是要先安装,再添加路径,可是我下来的第三方库没有看到安装文件啊。还望指教如何添加!
    发表于 06-15 22:32

    Proteus 第三方元件库

    第三方元件库,基本包含大部分常用元件的,分享给大家。
    发表于 04-16 22:06

    第三方dll调用问题!!!

    第三方dll,没有.h,labview怎么实现调用,dll可以用VS打开,类库说明也有
    发表于 05-11 09:14

    LabVIEW与第三方软件交互问题

    现在做一个软件,就是通过LabVIEW去与第三方软件进行交互操作!已经通过百度找到了利用user32.dll调用FindWindowA与PostMessage去实现对计算器,找了多方资料也没有找到解决办法。想做一个软件就是对图片2中第三方软件中控件进行控制的方法谢谢各位帮
    发表于 12-26 17:13

    proteus第三方元件库

    proteus第三方元件库
    发表于 05-26 10:44

    下载python第三方

    python第三方库的下载
    发表于 07-02 13:12

    国内知名第三方检测认证机构排名

    第三方检测机构国内起步的很晚,基本是2000年以后的事情,进入改革开放以来,特别是新世纪以来,国家对第三方机构的政策越来越放开了,很多职能部门都逐步下放到第三方机构来做。为了保证产品品质,就有
    发表于 07-19 16:57

    Detectron训练第三方数据集测试

    从零开始使用Detectron训练第三方数据集是什么体验(六)
    发表于 04-14 11:44

    Python入门之36常用第三方模块获取系统信息psutil

    Python入门】36常用第三方模块获取系统信息psutil
    发表于 07-16 06:31

    关于LabVIEW调用第三方exe,如何去控制第三方exe按钮的问题

    我想调用第三方的exe,但并没有给出任何接口,就单单一个exe程序,通过查资料得出可以用window自带的user32.dll可以控制第三方的软件,通过FindWindowA函数找到该软件句柄,通过
    发表于 08-12 16:37

    请问第三方平台授权如何实现?

    第三方平台授权如何实现
    发表于 11-10 07:27

    头文件中包含第三方文件

    macrocmake如果源文件(例如 CPP)中包含第三方头文件,但是头文件(例如 hpp)中不包含该第三方文件头,采用 PRIVATE。如果源文件和头文件中都包含该第三方文件头,采用 PUBLIC
    发表于 08-18 08:10

    第三方APP如何获取HDMI IN画面和声音

    问题描述及复现步骤:官方提供了一个Live TV能够预览HDMI IN的画面, 第三方应用如何获取HDMI IN的画面和声音??是否提供着这样的获取接口供第三方APP调用?
    发表于 09-08 16:34