大学生会计技能竞赛(三)

小AO作为2022年其赛事的一等奖的获奖者,跟各位小伙伴们分享一下区域赛的相关题型及相关知识点(大数据分析方面):
1、题型主要是以填空题为主。对区域赛来说还是比较简单的,小AO区域赛能拿满分,这是幸运的。
2、大数据方面。主要考三个模块:pandas、numpy、matplotlib。了解这三个模块的相关方法以及一些内置函数。如:merge、contains、groupby、replace、apply、map、pivot_table、还有读取数据read_excel都是高频词。同时,对于可视化要了解各个图形的相关方法

一共有四个样卷,本文为样卷三,其他样卷可在小AO专栏查看;需要数据的小伙伴们,可以找小AO或者评论区@小AO

制作财务指标
1.要求根据生成的2022年3月资产负债表,通过流动资产和非流动资产占比分析公司的资产配置结构;通过负债和所有者权益占比分析公司的负债和所有者权益结构。

2.要求根据生成的2022年3月资产负债表和2022年3月利润表,计算营业利润率(%)、现金比率(%)、资产负债率(%)、应收账款周转率(%),通过这些关键指标的分析公司的偿债能力、盈利能力、运营能力等。

一、财务指标制作步骤:
第一步:准备工作,先将【历年3月资产负债表.xlsx】中的数据根据日期统计各报表项目的数据,再将自制的【2021年3月资产负债表】拼接;

第二步:也是准备工作,将【历年3月利润表.xlsx】中的数据根据日期统计各报表项目的数据,再将自制的【2021年3月利润表】拼接;

第三步:准备工作的最后一步,把四年的资产表项目和四年的利润表项目拼接在一起,把需要在计算指标时用到的项目单独提取出来;

第四步:开始制作指标,根据指标公式计算题目要求的四个方面能力分析,可视化的部分我们只需要展示近3年的指标内容。

二、财务指标制作内容:

(一)准备工作
1.导入包。

import pandas as pd
import numpy as np
# 代码运行正常 警告不提示
import warnings
warnings.filterwarnings("ignore")

2.读取上一步生成的【2022年3月资产负债表】工作表。

df = pd.read_excel('excel/2022BKQY财务数据分析案例/2022年3月资产负债表.xlsx')
df

3.从资产负债表中摘取出流动资产分类的报表项目及数据进行数据清洗。

df1 = df.loc[0:12,'报表名称':'期末余额']#摘取属于流动资产分类的报表项目及数据
df1 = df1.groupby('报表名称')['期末余额'].sum()#根据报表名称分组期末余额求和
df1 = df1[df1.values>0]#值大于0的数据保留
df1 = df1.reset_index()#重置索引
df1['分类'] = '流动资产'#新增【分类】列,里面填充流动资产
df1

4.从资产负债表中摘取出非流动资产分类的报表项目及数据进行数据清洗。

df2 = df.loc[14:31,'报表名称':'期末余额']#摘取属于非流动资产分类的报表项目及数据
df2 = df2.groupby('报表名称')['期末余额'].sum()#根据报表名称分组期末余额求和
df2 = df2[df2.values>0]#值大于0的数据保留
df2 = df2.reset_index()#重置索引
df2['分类'] = '非流动资产'#新增【分类】列,里面填充非流动资产
df2

5.将数据表df1和df2纵向合并,并将【报表名称】列设为索引。

df3 = pd.concat([df1,df2])
df3 = df3.set_index('报表名称')
df3

6.对数据表df3根据【分类】分组求和。

df4 = df3.groupby('分类').sum()
df4

7.从资产负债表中摘取出负债分类的报表项目及数据进行数据清洗。

df5 = df.loc[0:12,'报表名称.1':'期末余额.1']#摘取属于负债分类的报表项目及数据
df5 = df5.groupby('报表名称.1')['期末余额.1'].sum()#根据报表名称.1分组期末余额.1求和
df5 = df5[df5.values>0]#保留数据大于0的项目和值
df5 = df5.reset_index()#重置索引
df5['分类'] = '负债'#新增分类列,填充内容为负债
df5

8.从资产负债表中摘取出所有者权益分类的报表项目及数据进行数据清洗。

df6 = df.loc[26:35,'报表名称.1':'期末余额.1']#摘取属于所有者权益分类的报表项目及数据
df6 = df6.groupby('报表名称.1')['期末余额.1'].sum()#根据报表名称.1分组期末余额.1求和
df6 = df6[df6.values>0]#保留数据大于0的项目和值
df6 = df6.reset_index()#重置索引
df6['分类'] = '所有者权益'#新增分类列,填充内容为负债
df6

9.将数据表df5和df6纵向合并,并将【报表名称.1】列设为索引。

df7 = pd.concat([df5,df6])
df7 = df7.set_index('报表名称.1')
df7

10.对数据表df7根据【分类】分组求和。

df8 = df7.groupby('分类').sum()
df8

11.使用环形图展示各资产比例、负债和所有者权益比例。

#从matplotlib库导入pyplot模块并将其命名为plt
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.family']='kaiTi' # 用楷体显示中文
plt.rcParams['axes.unicode_minus']=False # 正常显示负号 
plt.rcParams["font.size"] = 12 #设置字体大小
#获取需要填充的颜色
cmap = plt.get_cmap("tab20c")
outer_colors = cmap(np.arange(3)*4)
inner_colors = cmap([1, 2, 5, 6, 9, 10])

plt.figure(figsize=(18,6),dpi=100,facecolor='w')
ax1 = plt.subplot(1,2,1)
#内圈
ax1.pie(df4['期末余额'],
        labels = df4.index,#设置各个角的标签
        colors = outer_colors,
        autopct='%1.2f%%',#设置精度为小数点后两位
        pctdistance=0.8,#设置百分比标签和圆心的距离
        labeldistance=0.92,#设置标签和圆心的距离
        radius=0.8,#设置半径为0.8
        wedgeprops=dict(width=0.3,edgecolor='w'))#设置饼弧宽度和边框颜色
#外圈
ax1.pie(df3['期末余额'],
        labels = df3.index, #设置各个角的标签
        colors=inner_colors,
        autopct='%1.2f%%',
        pctdistance=0.98,
        labeldistance=1.1,#设置标签和圆心的距离
        radius=1, 
        textprops = {'color':'b'},#设置标签颜色
        wedgeprops=dict(width=0.3,edgecolor='w'))
ax1.set_title('资产分类')

ax2 = plt.subplot(1,2,2)
#内圈
ax2.pie(df8['期末余额.1'],
        labels = df8.index,#设置各个角的标签
        colors = outer_colors,
        autopct='%1.2f%%',#设置精度为小数点后两位
        pctdistance=0.8,#设置百分比标签和圆心的距离
        labeldistance=0.95,#设置标签和圆心的距离
        radius=0.8,#设置半径为0.8
        wedgeprops=dict(width=0.3,edgecolor='w'))#设置饼弧宽度和边框颜色
#外圈
ax2.pie(df7['期末余额.1'],
        labels = df7.index, #设置各个角的标签
        colors=inner_colors,
        autopct='%1.2f%%',
        pctdistance=0.98,
        labeldistance=1.15,#设置标签和圆心的距离
        radius=1, 
        textprops = {'color':'m'},#设置标签颜色
        wedgeprops=dict(width=0.3,edgecolor='w'))
ax2.set_title('负债和所有者权益分类')
plt.show()#展示图

12.读取上一步生成的【2022年3月利润表】工作表。

df9 = pd.read_excel('excel/2022BKQY财务数据分析案例/2022年3月利润表.xlsx')#读取
df9 = df9.groupby('项目').sum()#根据项目分组求和
df9 = df9[df9.values>0]#保留值大于0的项目和本期金额
df9

13.创建新的数据表,计算关键指标分析:营业利润率(%)、现金比率(%)、资产负债率(%)、应收账款周转率(%)指标。

#根据数据表df9 df这两个数据表取数计算下列指标
data ={'营业利润率(%)' :(df9.loc['二、营业利润(亏损以“-”号填列)']/ df9.loc['一、营业收入']*100).round(2),
'现金比率(%)' :(df.loc[0,'期末余额']/df.loc[13,'期末余额.1']*100).round(2),
'资产负债率(%)' :(df.loc[25,'期末余额.1']/df.loc[37,'期末余额']*100).round(2),
'应收账款周转率(%)' : (df9.loc['一、营业收入']/df.loc[4,'期末余额']*100).round(2)}#不考虑应收账款平均数,直接用应收账款期末数计算
df10 = pd.DataFrame(data)
df10

14.使用雷达图展示综合评价公司在偿债能力、盈利能力、运营能力等的优势与不足。

import numpy as np
import matplotlib.pyplot as plt
plt.figure(figsize=(6,6),dpi=90,facecolor='w')
plt.subplot(111, polar=True) #构建图例
data_length = len(df10.columns)
# 将极坐标根据数据长度进行等分
angles = np.linspace(0, 2*np.pi, data_length, endpoint=False)
labels = df10.columns#标签
data = df10.values[0]#值
# 使雷达图数据封闭
data = np.concatenate((data, [data[0]]))
angles = np.concatenate((angles, [angles[0]]))
labels = np.concatenate((labels, [labels[0]]))

# 绘制雷达图
plt.polar(angles, data, color='b')
plt.fill(angles,data,'#99ffff',alpha = 0.75)#填充
plt.xticks(angles,labels)
plt.title('关键指标分析')#设置标题
plt.show()#展示图例

你可能感兴趣的:(全国大学生会计技能竞赛,python,开发语言,数据分析)