python分析财务报表_python中请写一段程序计算并判断企业的净利率状况,从外部获取企业的净利润和-CSDN博客

python分析财务报表

前言

其实这也是老师要求我们分析的一个项目,所以记录下分析的过程。
财务大数据作为大数据方向的一个热门方向,如果能学好,对于我们的今后工作是会有很大帮助的,同时目前市场人才需求也是很大的。
这里写图片描述

实验目的

利用python构建财务报表,并进行一些财务分析。

实验过程

import os,re,csv,math 

years=[2017,2016,2015,2014,2013]
tot_retain_profits_ratio=[0,0,0,0,0]
#----------------------------------------打开文件夹中对应的三张Excel表-----------------------------------    
path_root = 'F:\\data\\A股报表大全'
dirs = os.listdir(path_root)
for dir in dirs:
    path_stock=os.path.join(path_root,dir)
    path_fzb=os.path.join(path_stock,'fzb')
    path_llb=os.path.join(path_stock,'llb')
    path_lrb=os.path.join(path_stock,'lrb')

    ls=dir.split('_')
    file_count = 0
    for fn in os.listdir(path_fzb): #部分公司上市少于5年,目录下的文件数少于5个,获得具体数量,为以下循环提供数据
        file_count = file_count + 1
    if file_count<len(years):
        years_cnt = file_count
    else:
        years_cnt=len(years)
    for i in range(years_cnt):
        if ls[0].startswith('6'): #沪市A股代码以数字6打头
            path_fzb_year=os.path.join(path_fzb,'sh_fzb_'+ls[0]+'_'+str(years[i])+'.csv')
            path_llb_year=os.path.join(path_llb,'sh_llb_'+ls[0]+'_'+str(years[i])+'.csv')
            path_lrb_year=os.path.join(path_lrb,'sh_lrb_'+ls[0]+'_'+str(years[i])+'.csv')
        else:
            path_fzb_year=os.path.join(path_fzb,'sz_fzb_'+ls[0]+'_'+str(years[i])+'.csv')
            path_llb_year=os.path.join(path_llb,'sz_llb_'+ls[0]+'_'+str(years[i])+'.csv')
            path_lrb_year=os.path.join(path_lrb,'sz_lrb_'+ls[0]+'_'+str(years[i])+'.csv')            


        file_llb=csv.reader(open(path_llb_year, 'r'))
        file_lrb=csv.reader(open(path_lrb_year, 'r'))
#----------------------------------------取出想分析的数据列进行分析----------------------------------------------------       

        for j,row in enumerate(file_lrb):
            if j==4:
                tot_revenue=float(row[8])#总营业收入
                tot_retain_profits=float(row[33])#归属母公司净利润
                if tot_revenue>0:
                    tot_retain_profits_ratio[i]=tot_retain_profits/tot_revenue#净利润率
                #print(tot_revenue,tot_retain_profits)
            elif j==3 and years[i]==2017:
                tot_revenue=float(row[8])
                tot_retain_profits=float(row[33])
                if tot_revenue>0:
                    tot_retain_profits_ratio[i]=tot_retain_profits/tot_revenue
                #print(tot_revenue,tot_retain_profits)
            else:
                pass
    #and math.median(tot_retain_profits_ratio)> 0.15
    if math.fsum(tot_retain_profits_ratio)/5 > 0.15 :
        print(dir,tot_retain_profits_ratio)

这里写图片描述
这样就可以获取不同公司A股报表数据了,并进行一些财务分析。
最后我构建了3000多家公司的财务分析表,类似财报说(这是一个财务分析有名的网站)网站效果:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里的0是由于一些报表信息的确实无法计算,所以统一用0代替。计算公式参考财报说的FAQ公式
这里写图片描述
具体代码被我放到github上:https://github.com/1qweasdzxc/python

  • 财务数据分析
    这一块可以进一步分析是否为重资产企业、财务杠杆高低、毛利率高低、周转率(翻桌率)等。

财务知识记录

这些知识都源自于《不懂财报也能轻松选出赚钱绩效股-李明樟》,有兴趣可以看看。

  • 三张财务报表必须一起看(资产负债表、损益表、现金流量表),而且最好看最近五年变化情况。
  • 资产=负债+股东权益
  • 财务杠杆越高代表公司状况好,肥水不流外人田。
  • 毛利率:这是不是一门好生意。
  • 营业利润率:这家公司是不是失去赚钱能力。
  • 现金流量:长久发展的基础,越多越好。
  • 经营能力:翻桌率,越高越好。
  • 获利能力:这是不是一门好生意?
  • 负债能力:你欠我的能还吗?
  • 假交易会增加营收,但无法变成现金。
  • 存货周转完整周期=存货在库天数(平均销货日数)+平均收现日数
  • 37
    点赞
  • 331
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
大学老师要我们学习郭永清老师的《财务报表分析与股票估值》这本书,布置了最后两章的作业, 对郭永清老师的《财务报表分析与股票估值》这本书内容的实现 注意事项 代码是基于《财务报表分析与股票估值》的,其中自由现金流的口径与大众认知略有出入,建议使用前先阅读该书第14、15章; 本人非计算机专业,模型代码可能存在部分错误; 银行股暂时无法估值,因为其财报形式和其他种类公司相比略有不同; 数据采用的是邢不行老师整理的股票历史日线数据和新浪财务数据; 本人非财务、会计专业,尽管过程中请教了CPA大神,但财务数据口径依然可能存在问题。 DCF介绍 自由现金流贴现法是绝对估值法的一种,理论基础是现值原理:任何资产的价值都等于其预期未来全部现金流的现值总和,对公司而言就是自由现金流。 由于准确预测未来所有自由现金流是不可能的,而且股票并没有固定的生命周期,因此将模型简化为以下四种: $$ \begin{aligned} &零增长模型:V=\frac{FCF}{WACC}\ &不变增长模型:V=\frac{FCF(1+g)}{WACC-g}\ &两阶段模型:V=\sum_{t=1}^n\frac{{FCF}t}{(1+WACC)^t}+\frac{TV}{(1+WACC)^n},\ \ 其中TV=\frac{FCF_n(1+g_2)}{WACC-g_2}\ &三阶段模型:V=\sum{t=1}^n\frac{{FCF}0(1+g_1)}{(1+WACC)^t}+\sum{t=n+1}^m\frac{{FCF}n(1+g_2)}{(1+WACC)^t}+\frac{FCF{n+m}(1+g_3)}{(WACC-g_3)(1+WACC)^{n+m}}\ \end{aligned} $$ 零增长模型适用于成熟稳定、没有增长的公司,每年的自由现金流也保持在一个稳定的金额水平,类似于永续年金;如果该类公司的自由现金流全部用于发放股利现金,那么其得出的结果与股利贴现模型非常接近。 不变增长模型适用于成熟的公司,未来的自由现金流以非常缓慢的速度增长。 在两阶段模型中,投资者的预期回报WACC至少要高于总体的经济增长率;不变增长率g2通常小于WACC,反之,意味着很长时间以后公司的规模将超过总体经济规模。 在三阶段模型中,假设所有的公司经历三个阶段:成长阶段、过渡阶段和稳定阶段。三个阶段的成长率由高到低,稳定阶段保持较低增长率的不变增长。 具体计算步骤: 计算自由现金流并依据相应的方法折现($\star\star\star\star\star$) 计算股权价值= 折现后的自由现金流+金融资产+长期股权投资-公司债务 计算少数股东比例 归属于上市公司股东的价值=股权价值$\times$(1-少数股东比例) 每股内在价值=归属于上市公司股东的价值/股本 其中, 经营资产自由现金流=公司维持原有生产经营规模前提下的增量现金流入=经营活动现金流量额-保全性资本支出=经营活动现金流量额-固定资产折旧-无形资产和长期待摊费用摊销-处置长期资产的损失 $WACC=k_d\times\frac{D}{D+E}\times(1-t)+k_e\times\frac{E}{D+E}$。其中债务资本成本率=债务资本总额/债务资本平均金额$\times$100%=(财务费用+汇兑收益)/(期初债务资本+期末债务资本)/2;股权资本成本率应该高于同期的国债利率,加上股票投资的风险溢价,我们普遍设置为9%;t为公司实际所得税税率=1-净利润/税前利润。 公司债务=有息债务 少数股东比例=$\frac{少数股东权益}{股东权益合计}$ 股本=市值/股价

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值