python财务报表书籍_Python读财报-获取财务报表
學習了一段時間python,學以致用,結合財報練練手。
代碼環境:WIN10、Aanconda3、Jupyter notebook
第三方庫:pandas 、os、tuahare、datetime、time
總體思路:
第1步:獲得A股股票代碼
第2步:循環所有股票代碼,獲取每個股票代碼的利潤表、資產負債表、現金流量表
針對三個財務報表,構建3個函數,函數代碼結構類似
第1步:得到個股利潤表數據
第2步:檢測是否有保存過的數據,如果有添加到末尾
第3步: 保存為CSV文件
具體代碼:
引入第三方庫
#引入第三方庫
import pandas as pd
import os
import tushare as ts
import datetime
import time
第1個函數,獲取利潤表
# 第1個函數,獲取每個股票的利潤表,
# 文件路徑:C:\DataAnalysis\Data\00.LirunbiaoCN
def stockLirunbiao(ticker, folder):
# 第1步:得到個股利潤表數據
dfLirunbiao = pro.income(ts_code = ticker )
# 第2步:檢測是否有曾經查詢過的數據,如果有添加到末尾
file = folder + '/' + ticker + '.csv'
if os.path.lexists(file):
history = pd.read_csv(file, index_col = 0)
dflirunbiao.append(history)
# 第3步:保存為CSV文件
dfLirunbiao .to_csv(file)
print('dfLirunbiao for [' + ticker + '] got.')
第2個函數:獲取資產負債表
# 第2個函數,獲取每個股票的資產負債表,
#文件路徑C:\DataAnalysis\Data\00.ZichanfuzhaibiaoCN
def stockZichanfuzhaibiao(ticker, folder):
# 第1步:得到個股資產負債表數據
dfZichanfuzhaibiao = pro.balancesheet(ts_code = ticker)
# 第2步:檢測是否有曾經查詢過的數據,如果有添加到末尾
file = folder + '/' + ticker + '.csv'
if os.path.lexists(file):
history = pd.read_csv(file, index_col=0)
dfZichanfuzhaibiao.append(history)
# 第3步:保存為CSV文件
dfZichanfuzhaibiao.to_csv(file)
print('dfZichanfuzhaibiao for [' + ticker + '] got.')
第3個函數:獲取現金流量表
# 第3個函數,獲取每個股票的現金流量表,
# 文件路徑:C:\DataAnalysis\Data\00.XianjinliuliangbiaoCN
def stockXianjinliuliangbiao(ticker, folder):
# 第1步:得到個股現金流量表數據
dfXianjinliuliangbiao = pro.cashflow(ts_code=ticker)
# 第2步:檢測是否有曾經查詢過的數據,如果有添加到末尾
file = folder + '/' + ticker + '.csv'
if os.path.lexists(file):
history = pd.read_csv(file, index_col=0)
dfXianjinliuliangbiao .append(history)
#第3步:保存為CSV文件
dfXianjinliuliangbiao .to_csv(file)
print('dfXianjinliuliangbiao for [' + ticker + '] got.')
初始化Tushare庫接口
#Tushare初始化
#輸入tushare pro版Token
ts.set_token('接口密鑰')
#初始化pro接口
pro = ts.pro_api()
獲取股票代碼
#第1步。獲得A股股票代碼
tickersRawData = pro.stock_basic()
tickers = tickersRawData["ts_code"].unique().tolist()
print(tickers)
循環股票代碼,獲取三個財務報表
#第2步。循環所有股票代碼,獲取每個股票代碼的利潤表、資產負債表、現金流量表
for i, ticker in enumerate(tickers):
print('完成循環', i, '/', len(tickers))
try:
stockLirunbiao(ticker, folder='../data/00.LirunbiaoCN')
stockZichanfuzhaibiao(ticker, folder='../data/00.ZichanfuzhaibiaoCN')
stockXianjinliuliangbiao(ticker, folder='../data/00.XianjinliuliangbiaoCN')
time.sleep(2)
except:
pass
if i > 7:
break
print('全部完成 for all stocks got.')
總結
以上是生活随笔為你收集整理的python财务报表书籍_Python读财报-获取财务报表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于matlab的单周期控制三相高功率因
- 下一篇: 安装Wincc Flexible 200