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.')

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值