随着金融行业的发展,金融相关的数据变得越来越有价值。股票的历史数据就是一种非常重要的时间序列数据,本文介绍一个不需要自己动手写爬虫就能够获取各个公司的股票信息的Python库——yfinance。
01
yfinance的安装
yfinance作为一种数据分析中常用的数据获取库,自然需要一些前置库的安装,其前置库和本身的安装代码如下:
代码语言:javascript复制pip install numpy
pip install pandas
pip install requests
pip install yfinance
02
yfinance的使用
在该库中我们主要使用的是Ticker()模块中的函数,以阿里巴巴的股票为例,我们来学习一下该模块的使用。
首先我们可以使用Ticker函数去获取某个公司的所有股票信息(填写公司的上市英文代码缩写名称),使用info可以直接输出该公司的电话、地址、网址、当前股价、公司信息等许多详细的信息。
获取公司信息的代码如下:
代码语言:javascript复制baba = yf.Ticker("BABA")
baba.info
部分结果如下:
查看股价的历史信息,我们可以设定的时间周期为:
1d,5d,1mo,3mo,6mo,1y,2y,5y,10y,ytd,max
以一天为间隔举例:
代码语言:javascript复制hist = baba.history(interval='1d', period='max')
hist
部分结果如下:
查询公司的分红和拆股信息:
代码语言:javascript复制# 只查询分红
baba.dividends
# 只查询拆股
baba.splits
# 查询分红和拆股
baba.actions
结果如下(阿里应该是没有分红和拆股信息的):
查询不同股东的占比:
代码语言:javascript复制baba.major_holders
结果如下:
获得公司财报的方式如下:
代码语言:javascript复制# 查询公司的财务数据
baba.financials
# 查询公司的资产负债表
baba.balance_sheet
# 查询公司的现金流量表
baba.cashflow
获取股票期权数据的方式如下:
代码语言:javascript复制# 查询有哪些月份的期权(得到期权到期日)
baba.options
# 查询某个月的期权
baba.option_chain('2020-07-02')
# 查询某个月所有的看涨期权
baba.option_chain('2020-07-02').calls
# 查询某个月所有的看跌期权
baba.option_chain('2020-07-02').puts
部分结果如下:
获得股票数据的方式如下:
代码语言:javascript复制# 获得单个公司的股票数据
yf.download("BABA", start="2020-01-01")
# 获得多个公司的股票数据
yf.download(tickers = "BABA TCEHY",start="2020-01-01",group_by = 'ticker')
结果如下: