隨着金融行業的發展,金融相關的數據變得越來越有價值。股票的歷史數據就是一種非常重要的時間序列數據,本文介紹一個不需要自己動手寫爬蟲就能夠獲取各個公司的股票信息的Python庫——yfinance。
yfinance的安裝
yfinance作爲一種數據分析中常用的數據獲取庫,自然需要一些前置庫的安裝,其前置庫和本身的安裝代碼如下:
pip install numpy
pip install pandas
pip install requests
pip install yfinance
yfinance的使用
在該庫中我們主要使用的是Ticker()模塊中的函數,以阿里巴巴的股票爲例,我們來學習一下該模塊的使用。
首先我們可以使用Ticker函數去獲取某個公司的所有股票信息(填寫公司的上市英文代碼縮寫名稱),使用info可以直接輸出該公司的電話、地址、網址、當前股價、公司信息等許多詳細的信息。
獲取公司信息的代碼如下:
baba = yf.Ticker("BABA")
baba.info
部分結果如下:
查看股價的歷史信息,我們可以設定的時間週期爲:
1d,5d,1mo,3mo,6mo,1y,2y,5y,10y,ytd,max
以一天爲間隔舉例:
hist = baba.history(interval='1d', period='max')
hist
部分結果如下:
查詢公司的分紅和拆股信息:
# 只查詢分紅
baba.dividends
# 只查詢拆股
baba.splits
# 查詢分紅和拆股
baba.actions
結果如下(阿里應該是沒有分紅和拆股信息的):
查詢不同股東的佔比:
baba.major_holders
結果如下:
獲得公司財報的方式如下:
# 查詢公司的財務數據
baba.financials
# 查詢公司的資產負債表
baba.balance_sheet
# 查詢公司的現金流量表
baba.cashflow
獲取股票期權數據的方式如下:
# 查詢有哪些月份的期權(得到期權到期日)
baba.options
# 查詢某個月的期權
baba.option_chain('2020-07-02')
# 查詢某個月所有的看漲期權
baba.option_chain('2020-07-02').calls
# 查詢某個月所有的看跌期權
baba.option_chain('2020-07-02').puts
部分結果如下:
獲得股票數據的方式如下:
# 獲得單個公司的股票數據
yf.download("BABA", start="2020-01-01")
# 獲得多個公司的股票數據
yf.download(tickers = "BABA TCEHY",start="2020-01-01",group_by = 'ticker')
結果如下: