py与财务

资产负债表到财务指标

通过loc定位到数据,再计算

import xlrd
import pandas as pd
import xlwt


source=pd.read_excel('资产负债表.xlsx',sheet_name=[0,1,2],index_col=0,header=0)#pandas读取excel的函数
#三张表中数据分别放入不同的组中
balance_sheet=source[0]
profit_sheet=source[1]
Add_data=source[2]
#df=pd.read_excel('lemon.xlsx',sheet_name=['python','student'])#可以通过表单名同时指定多个
# df=pd.read_excel('lemon.xlsx',sheet_name=0)#可以通过表单索引来指定读取的表单
# df=pd.read_excel('lemon.xlsx',sheet_name=['python',1])#可以混合的方式来指定
# df=pd.read_excel('lemon.xlsx',sheet_name=[1,2])#可以通过索引 同时指定多个
Total_asset=balance_sheet.loc["资产总计"].values 
Total_debt=balance_sheet.loc["负债合计"].values
liq_ratio=balance_sheet.loc["流动资产合计"].values/balance_sheet.loc["流动负债合计"].values
#计算流动比率
Qui_ratio=(balance_sheet.loc["流动资产合计"].values-balance_sheet.loc["存货"].values)/balance_sheet.loc["流动负债合计"].values
#计算速动比率
Debt_Asset=balance_sheet.loc["负债合计"].values*100/balance_sheet.loc["资产总计"].values
#计算资产负债率
All_debt=balance_sheet.loc["长期借款"].values+balance_sheet.loc["应付债券"].values+balance_sheet.loc["交易性金融负债"].values+\
balance_sheet.loc["应付票据"].values+balance_sheet.loc["一年内到期的非流动负债"].values
#计算全部债务
all_debt_capital=All_debt*100/(All_debt+balance_sheet.loc["所有者权益合计"].values)
#计算全部债券资本比率
Income=profit_sheet.loc["营业收入"].values
Cost=profit_sheet.loc["营业成本"].values 
margin=(Income-Cost)*100/Income#计算毛利
EBITDA=profit_sheet.loc["四、利润总额"].values+Add_data.loc["计入财务费用的利息支出"].values+\
Add_data.loc["折旧"].values+Add_data.loc["无形资产摊销"].values+Add_data.loc["长期待摊费用摊销"].values
#计算EBITDA
EBITDA_int=EBITDA/(Add_data.loc["计入财务费用的利息支出"].values+Add_data.loc["资本化利息支出"].values)#EBITDA利息保障倍数

Tableindex=["总资产","总负债","流动比率","速动比率","资产负债率%","债务资本比率%","营业收入","营业成本","毛利率%","EBITDA","EBITDA利息保障倍数"]
Finance_ratio=pd.DataFrame([Total_asset,Total_debt,liq_ratio,Qui_ratio,Debt_Asset,all_debt_capital,Income,Cost,margin,EBITDA,EBITDA_int],
	index=Tableindex)#汇总数据

Finance_ratio.to_excel('data_2.xlsx', na_rep='--',header=['2019-09-30','2018-12-31','2017-12-31','2016-12-31'],index_label=["项目"])
#缺失值替代字符na_rep参数

#Finance_ratio=round(Finance_ratio,2)
#currency=source.loc[2].values
#source.to_excel('data_1.xlsx', na_rep='--',header=['第一列', '第二列', '第三列', '第四列'])
#print("读取指定行的数据:\n{0}".format(y))
#print("读取指定行的数据:\n{0}".format(liq_ratio))


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值