小AO作为2022年其赛事总决赛的一等奖获奖者,跟各位小伙伴们分享一下总决赛赛的相关题型及相关知识点(大数据分析方面):
1、题型主要是以填空题为主。对区域赛来说还是比较简单的,小AO总决赛拿96.40分,没有满分,希望有小伙伴们提出错误。
2、大数据方面。主要考三个模块:pandas、numpy、matplotlib。了解这三个模块的相关方法以及一些内置函数。如:merge、contains、groupby、replace、apply、map、pivot_table、还有读取数据read_excel都是高频词。同时,对于可视化要了解各个图形的相关方法
一共有四个样卷,总决赛样卷一与样卷二跟区域赛的一样,就不重复,需要的小伙伴可在专栏“全国大学生会计技能竞赛”查看大学生会计技能竞(一)、(二)。赛本文为样卷三,其他样卷可在小AO专栏查看;需要数据的小伙伴们,可以找小AO或者评论区@小AO。

制作财务指标
1.要求根据生成的2022年资产负债表和利润表的期末余额和期初余额,计算相关安全性指标、收益性指标、流动性指标、成长指标。

2.从九九财经包中筛选出案例公司行业批发业2021年指定的安全性指标、收益性指标、流动性指标、成长指标。

3.绘制雷达图,将案例公司与行业均值财务指标对比分析。

一、财务指标制作步骤:
第一步:准备工作,根据先前生成的【2022年12月资产负债表.xlsx】与路径下的【2022年期初资产负债表.xlsx】整合成三列数据【项目】、【期末余额】、【期初余额】。

第二步:准备工作,根据先前生成的【2022年12月利润表.xlsx】与路径下的【2022年1-11月利润表.xlsx】、【2021年年度利润表.xlsx】整合成三列数据【项目】、【期末余额】、【期初余额】。

第三步:准备工作,将资产负债表的【期初余额】、【期末余额】与利润表的【期初余额】、【期末余额】合并。

第四步:根据整理后的数据源,计算相关安全性指标、收益性指标、流动性指标、成长指标。

第五步:从九九财经包中,筛选出批发业2021年指定的安全性指标、收益性指标、流动性指标、成长指标均值。

第六步:将案例公司的行业均值做对比分析,并要求用雷达图的形式展示案例公司与行业在各财务指标的优势与不足。

二、财务指标制作内容:
(一)准备工作
1.导入包。

import pandas as pd
import numpy as np
import os
import onez.finance as finance
#防止科学计数法
np.set_printoptions(suppress=True)
pd.set_option('display.float_format',lambda x : '%.2f' % x)
pd.read_excel('excel/2022BKJS财务数据分析案例/2022年12月资产负债表.xlsx')
pd.read_excel('./excel/2022BKJS财务数据分析案例/2022年期初资产负债表.xlsx')
pd.read_excel('excel/2022BKJS财务数据分析案例/2022年12月利润表.xlsx')
pd.read_excel('./excel/2022BKJS财务数据分析案例/2022年1-11月利润表.xlsx')

2.创建concat_xlsx自定义函数,该函数能根据关键词,合并同一个文件夹下的符合关键词的所有文件。

def concat_xlsx(dir_name,key='关键词'):dfs = []for filename in os.listdir(dir_name):#列出指定路径下的文件名字if key in filename:full_path = os.path.join(dir_name, filename)df = pd.read_excel(full_path)dfs.append(df)result = pd.concat(dfs,axis=1)#横向合并return result

3.调用自定义函数concat_xlsx,合并【excel/2022BKJS财务数据分析案例】文件夹下的工作簿名字中含有【资产负债表】的文件。

zc_df = concat_xlsx('excel/2022BKJS财务数据分析案例',key='资产负债表')
zc_df

4.删除相同的列名列。使用duplicated 标记出重复行,并将其剔除。

zc_df = zc_df.T[~zc_df.T.index.duplicated()].T
zc_df

5.筛选出资产负债表左侧报表项目及金额等。使用排除掉列名中不包含【.1】字符串的列。

left_zcdf =zc_df[zc_df.columns[~zc_df.columns.str.contains('.1')]]
left_zcdf

6.筛选出资产负债表右侧报表项目及金额等。筛选出列名中包含【.1】字符串的列。

right_zcdf = zc_df[zc_df.columns[zc_df.columns.str.contains('.1')]]
#修改列名,去掉列名中的【.1】字符串后缀
right_zcdf.columns = right_zcdf.columns.str.rstrip('.1')
right_zcdf

7.将资产负债表左侧内容left_zcdf和右侧内容right_zcdf纵向合并,并删除【行次】这一列,最后将【报表名称】重命名为【项目】。

zcfzb = pd.concat([left_zcdf,right_zcdf])#合并
zcfzb = zcfzb.drop('行次',axis=1)#删除
zcfzb = zcfzb.rename(columns={'报表名称':'项目'})#重命名
zcfzb

8.调用自定义函数concat_xlsx,合并【excel/2022BKJS财务数据分析案例】文件夹下的工作簿名字中含有【利润表】的文件。
【本年累计】为2022年1-11月累计数,【本期金额】为2022年12月本月数,【年末数】为2021年1-12月累计数。

lr_df = concat_xlsx('excel/2022BKJS财务数据分析案例',key='利润表')
lr_df

9.删除相同的列名列。使用duplicated标记出重复行,并将其剔除。

lr_df = lr_df.T[~lr_df.T.index.duplicated()].T
lr_df

10.数据清洗,列出利润表2022年度期末余额,期初余额。其中【期末余额】=【本年累计】+【本期金额】,【期初余额】为【年末数】。

lr_df['期末余额'] = lr_df['本年累计']+lr_df['本期金额']#计算期末余额
lr_df = lr_df.rename(columns={'年末数':'期初余额'})#重命名
lrb = lr_df.drop(['本年累计','本期金额','行次'],axis=1)#删除【本年累计】、【本期金额】、【行次】
lrb

11.将资产负债表zcfzb、利润表lrb纵向合并,并将【项目】设置为索引。

bb_df = pd.concat([zcfzb,lrb])#合并
bb_df = bb_df.set_index('项目')#设置索引
bb_df

12.从财务报表bb_df中提炼出计算指标的报表项目。

流动资产 =  bb_df.loc['流动资产合计','期末余额']
速动资产 =  bb_df.loc['流动资产合计','期末余额']- bb_df.loc['存货','期末余额']-bb_df.loc['预付款项','期末余额']
流动负债 =  bb_df.loc['流动负债合计','期末余额']
负债总额 = bb_df.loc['负债合计','期末余额']
资产总额 = bb_df.loc['资产总计','期末余额']
销售收入 = bb_df.loc['一、营业收入','期末余额']
销售成本 =  bb_df.loc['减:营业成本','期末余额']
流动资产平均余额 = (bb_df.loc['流动资产合计','期末余额']+bb_df.loc['流动资产合计','期初余额'])/2
存货平均余额 = (bb_df.loc['存货','期末余额']+bb_df.loc['存货','期初余额'])/2
总资产平均余额 = (bb_df.loc['资产总计','期末余额']+bb_df.loc['资产总计','期初余额'])/2
平均净资产 = (bb_df.loc['所有者权益(或股东权益)合计','期末余额']+bb_df.loc['所有者权益(或股东权益)合计','期初余额'])/2
净利润 = bb_df.loc['四、净利润(净亏损以“-”号填列)','期末余额']
年末净资产 = bb_df.loc['所有者权益(或股东权益)合计','期末余额']
年初净资产 = bb_df.loc['所有者权益(或股东权益)合计','期初余额']
本年净利润 = bb_df.loc['四、净利润(净亏损以“-”号填列)','期末余额']
上年净利润 = bb_df.loc['四、净利润(净亏损以“-”号填列)','期初余额']
本年销售收入= bb_df.loc['一、营业收入','期末余额']
上年销售收入= bb_df.loc['一、营业收入','期初余额']

13.财务指标的计算。

#安全性指标
流动比率 = 流动资产/流动负债
速动比率 = 速动资产/流动负债
资产负债率 = 负债总额/资产总额*100#收益性指标
总资产净利润率 = (净利润/总资产平均余额)*100
净资产收益率 = (净利润/平均净资产)*100
销售净利率 = (净利润/销售收入)*100#流动性指标
存货周转率 = 销售成本/存货平均余额
流动资产周转率 = 销售收入/流动资产平均余额
总资产周转率 = 销售收入/总资产平均余额#成长指标
净利润增长率 =  (本年净利润-上年净利润)/上年净利润*100
主营业务收入增长率 = (本年销售收入-上年销售收入)/上年销售收入*100

14.创建存储2022年12月的数据指标的数据表。

data = {'流动比率':[流动比率],'速动比率':[速动比率],'资产负债率(%)':[资产负债率],'总资产净利润率(%)':[总资产净利润率],'净资产收益率(%)':[净资产收益率],'销售净利率(%)':[销售净利率],'存货周转率(次)':[存货周转率],'流动资产周转率(次)':[流动资产周转率],'总资产周转率(次)':[总资产周转率],'净利润增长率(%)':[净利润增长率],'主营业务收入增长率(%)':[主营业务收入增长率]
}
zbdf = pd.DataFrame(data)#创建表格
zbdf = zbdf.rename(index={0:'2022-12-31'})#重命名,0改为【2022-12-31】
zbdf['名称'] = '久金商贸'#新增【名称】列。
zbdf

15.新增变量industry :批发业,根据行业属性从九九财经包中获取批发业财务指标数据。

industry = '批发业'
json = finance.getIndustry(industry,'财务指标')
figIndDf = pd.DataFrame(json)
figIndDf

16.将批发业财务指标数据中的报表日期、名称设为索引。

figIndDf = figIndDf.set_index(['报表日期','名称'])
figIndDf

17.筛选财务指标,只保留与我们案例企业相同的指标。

figIndDf = figIndDf[figIndDf.columns[figIndDf.columns.isin(zbdf.columns)]]
#处理异常数据 免得无法计算报错
figIndDf= figIndDf[figIndDf.columns].apply(pd.to_numeric, errors='coerce', axis=1)
figIndDf = figIndDf.reset_index()#索引重置
figIndDf

18.新增变量startDate:2021-12-31,筛选数据,只保留21年的财务指标数据。

startDate='2021-12-31'
figIndDf = figIndDf[figIndDf['报表日期']==startDate]
figIndDf

19.计算批发业行业财务指标均值,并新增名称列注明为批发业。

meandf = figIndDf.groupby('报表日期').mean()#分组统计
meandf['名称'] = industry#新增名称列
meandf

20.将案例公司zbdf2022年财务指标与行业2021年财务指标均值合并。

zhdf = pd.concat([zbdf,meandf])
zhdf

21.将名称设为索引,并且计算案例公司久金商贸与行业均值的对比值。

zhdf = zhdf.set_index('名称')
zhdf.loc['对比值'] = zhdf.loc['久金商贸']-zhdf.loc[industry]
zhdf

22.使用雷达图展示综合评价案例公司与行业在各财务指标的优势与不足。

#从matplotlib库导入pyplot模块并将其命名为plt
import matplotlib.pyplot as plt
plt.rcParams['font.family']='kaiTi' # 用楷体显示中文
plt.rcParams['axes.unicode_minus']=False # 正常显示负号
plt.figure(figsize=(8,6),dpi=90,facecolor='w')
plt.subplot(111, polar=True) #构建图例
data_length = len(zhdf.columns)
# 将极坐标根据数据长度进行等分
angles = np.linspace(0, 2*np.pi, data_length, endpoint=False)
labels = zhdf.columns#标签
data1 = zhdf.values[0]#值
data2 = zhdf.values[1]
data3 = zhdf.values[2]
# 使雷达图数据封闭
data1 = np.concatenate((data1, [data1[0]]))
data2 = np.concatenate((data2, [data2[0]]))
data3 = np.concatenate((data3, [data3[0]]))
angles = np.concatenate((angles, [angles[0]]))
labels = np.concatenate((labels, [labels[0]]))# 绘制雷达图
plt.polar(angles, data1, color='b')
plt.polar(angles, data2, color='r')
plt.polar(angles, data3, color='g')
plt.fill(angles,data1,'b',alpha = 0.55)#填充
plt.fill(angles,data2,'r',alpha = 0.55)#填充
plt.fill(angles,data3,'g',alpha = 0.55)#填充
plt.xticks(angles,labels)
plt.title('关键指标分析')#设置标题
plt.legend(zhdf.index, loc='upper left')
plt.show()#展示图例

大学生会计技能竞赛总决赛(三)相关推荐

  1. 大学生会计技能竞赛(一)

    小AO作为2022年其赛事的一等奖的获奖者,跟各位小伙伴们分享一下区域赛的相关题型及相关知识点(大数据分析方面): 1.题型主要是以填空题为主.对区域赛来说还是比较简单的,小AO区域赛能拿满分,这是幸 ...

  2. 大学生会计技能竞赛(二)

    小AO作为2022年其赛事的一等奖的获奖者,跟各位小伙伴们分享一下区域赛的相关题型及相关知识点(大数据分析方面): 1.题型主要是以填空题为主.对区域赛来说还是比较简单的,小AO区域赛能拿满分,这是幸 ...

  3. 关于第十六届全国大学生智能汽车竞赛总决赛的规则建议

    简 介: 本文收录了全国大学生智能车竞赛浙江赛区组委会对2021年第十六届全国大学智能车竞赛全国总决赛线上比赛建议. 关键词: 智能车竞赛,总决赛,线上比赛,建议 全国组委会:   因疫情影响,第十六 ...

  4. 第十六届全国大学生智能汽车竞赛总决赛 AI视觉组线上赛细则

    简 介: 本文对于参加2021年第十六届智能车竞赛全国总决赛线上比赛室内AI视觉组比赛细则. 关键词: 智能车竞赛,线上比赛,室内视觉AI 一.比赛方式   由于AI视觉组的特殊识别任务,比如分赛区的 ...

  5. 第十六届全国大学生智能汽车竞赛总决赛 AI视觉组线上赛图片显示软件发布及线上赛注意事项

    简 介: 本文对于第十六届全国大学生智能车竞赛视觉AI组线上比赛的识别任务软件以及相关比赛流程注意事项进行总结. 关键词: 智能车竞赛,视觉AI组 §01 积分分值   根据 第十六届全国大学生智能车 ...

  6. 第十六届全国大学生智能汽车竞赛总决赛 AI视觉组线上赛细则草案 - 初步版本

    简 介: 关于室内AI视觉组在线上比赛的特殊性,本文由逐飞起草的比赛细则给出了比赛过程的详细描述. 关键词: 智能车竞赛,室内视觉,线上比赛 §01 比赛方式   由于AI视觉组的特殊识别任务,比如分 ...

  7. 2020大学生网络安全知识竞赛总决赛模拟卷易错题集(5)

    1.信息安全问题是一个系统问题,而不是单一的信息本身的问题,根据系统安全的整体结构,可将信息系统安全分为5个层次.以下不属于信息系统安全五个层面的是( ) A.物理安全:B.网络安全:C.数据安全:D ...

  8. 2021全国大学生电子设计竞赛--电源--三相逆变(软件)

    昨天写了一篇硬件方面的文章,很多人就咨询我,今天乘着热度写篇关于三箱逆变软件的文章. 三相逆变的关键就是输出互补的SPWM波,更直白点就是占空比按照正弦波变化. 本文说三个问题:SPWM,调压,,调频 ...

  9. 2020大学生网络安全知识竞赛总决赛模拟题易错题集(3)

    1.DES是一种使用密钥加密的块算法,其英文全称是( ) A.Data Encryption Standard:B.Dynamic Encryption Standard:C.Dynamic Elli ...

最新文章

  1. typedef和define具体的详细区别
  2. java程序员求职计划_2017年java程序员面试经验(500字)
  3. Practical Lessons from Predicting Clicks on Ads at Facebook (2014)论文阅读
  4. 基于内容推荐系统中的常识 [ACM暑校]
  5. php静态stitac,php静态static介绍
  6. 力扣376. 摆动序列(JavaScript)
  7. 解决Kscope中文乱码问题
  8. jquery双击修改_jQuery双击
  9. 删除数组中重复的数字
  10. DevOps: 一例高负载多并发服务器连接池满的异常排解过程
  11. Code::Blocks代码自动提示设置及常用快捷键 .
  12. 新媒体活动策划方案要点
  13. 软件工程导论面试常见问题
  14. android webview最新版下载,AndroidWebView
  15. Visual Studio C# Winform应用程序图标修改不了 更改图标不生效,发送桌面快捷方式与图标不一致解决办法
  16. 基于Flask的视频网站设计与实现(Python电影视频推荐系统)
  17. GO中时间转换到毫秒
  18. 计算机主板反复启动,主板无限重启怎么回事
  19. WDS+MDT部署Windows7操作系统2—;导入启动映像和安装映像
  20. 用opengl画一个3D机器人 完整源码 直接使用

热门文章

  1. 化工企业双重预防体系数字化综合管理系统
  2. 仿照Kafka,从零开始自实现 MQ
  3. 人脸识别之人脸关键点(仅供本人参考)
  4. java实现连接linux,JAVA实现远道SSH连接linux并执行命令
  5. [4G5G专题-76]:流程 - 4G LTE PLMN选择、扫频、小区搜索、系统消息读取、小区选择过程
  6. node.js毕业设计安卓手机银行客户端APP(程序+APP+LW)
  7. OpenCASCADE 读写STEP文件
  8. 手机换IP的方法--手机PPTP
  9. 你不知道的3D电影7大危害
  10. 解决显卡驱动错误43