2023 年“泰迪杯”数据分析技能赛B 题企业财务数据分析与造假识别

2023 年"泰迪杯"数据分析技能赛B 题企业财务数据分析与造假识别

一、背景

财务数据是指企业经营活动和财务结果的数据记录,反映了企业的财务状况

与经营成果。对行业、企业的财务数据进行分析,就是要评价其过去的经营业绩、

衡量现在的财务状况、预测未来的发展趋势。财务数据分析不仅对企业生产经营

管理有着重要的作用,而且对企业外部投资、贷款、赊销等决策有重要作用;经

济管理部门也可以通过财务数据分析了解行业经济的运行状况,合理配置资源,

科学调控经济运行,促进经济高质量发展。而财务造假则会对企业、投资者和整

个市场带来极大的危害,准确甄别财务造假企业,帮助投资者识别风险,促进企

业诚信经营,对营造良性的市场竞争环境有非常重要的现实意义。

二、目标

  1. 财务数据预处理。
  2. 财务数据指标分析及可视化。
  3. 建立企业利润预测模型,预测企业营收情况;并根据财务报表数据的特
    点,筛查财务造假的企业。

三、任务

请根据提供的数据,选择分析工具完成以下任务,并撰写报告。

任务 1 财务数据处理

任务 1.1

读取"LR.csv",提取表 1 中所列字段的数据,筛选出字段"Typrep"

值为"A"的数据,将筛选出的数据另存为文件"LR_1.csv"(文件编码设置为

UTF-8),并在报告中呈现筛选后的数据行数、列数。

bash 复制代码
df1_1 = pd.read_csv('数据/LR.csv')
df1_1.head()

# 提取表 1 中所列字段的数据
df1_1 = df1_1[[
    'Stkcd', 'Accper', 'Typrep', 'B001000000', 'B001100000', 'B001101000',
    'B001200000', 'B001201000', 'B001207000', 'B001209000', 'B001210000',
    'B001211000', 'B001212000', 'B001303000', 'B002300000'
]]

df1_1 = df1_1[df1_1['Typrep'] == 'A']  # 筛选出字段"Typrep"值为"A"的数据
df1_1.reset_index(inplace=True, drop=True)  # 重置索引
df1_1

df1_1.to_csv('LR_1.csv',encoding='utf-8',index=False)
bash 复制代码
筛选后的数据行数:  33414
筛选后的数据列数:  15

任务 1.2

读取"LR_1.csv"、"ZCFZ.csv"、"Stk_ind.csv"三个数据文件。

根据"Stkcd"、"Accper"和"Typrep"三个字段,提取"ZCFZ.csv"中字段为

"A002000000"和"A001000000"的相应数据,合并到"LR_1.csv"中。根据字

段"Stkcd",提取"Stk_ind.csv"中字段为"Indnme"和"Nindnme"的相应数

据,合并到"LR_1.csv"中。将完成合并的数据另存为文件"LR_2.csv"(文件

编码设置为 UTF-8),并在报告中呈现合并后数据的行数、列数。

bash 复制代码
df1_2_1 = pd.read_csv('LR_1.csv')
df1_2_1.head()

df1_2_2 = pd.read_csv('数据/ZCFZ.csv')
df1_2_2.head()

df1_2_3 = pd.read_csv('数据/Stk_ind.csv',encoding='gbk')
df1_2_3.head()

df1_2_2 = df1_2_2[['Stkcd','Accper','Typrep','A002000000','A001000000']]
df1_2_2
# 左连接,连接字段为'Stkcd','Accper','Typrep'
data = df1_2_1.merge(df1_2_2,how='left',on=['Stkcd','Accper','Typrep'])
data
bash 复制代码
data1_2_2_1 = data1_2_2[["Stkcd", "Accper", "Typrep","A002000000", "A001000000"]]
bash 复制代码
df1_2 = df1_2_3.merge(data,how='right',on='Stkcd')  # 右连接
df1_2

df1_2.to_csv('LR_2.csv',encoding='utf-8',index=False)

任务 1.3

读取"LR_2.csv",删除空值占比达 70%及以上的数据列,将处理后的数据另存为文件"LR_3.csv"(文件编码设置为 UTF-8),并在报告中呈处理后数据的列数。

任务 1.4

读取"LR_3.csv",删除包含空值的行,将处理后的数据另存为文件"LR_4.csv"(文件编码设置为 UTF-8),并在报告中呈现处理后数据的行数。

处理后数据的行数为30888

任务 1.5

读取"LR_4.csv",将字段"Accper"的日期数据转换为"YYYYmm-dd"的格式,例如:"2018-1-31"转换为"2018-01-31",将处理后的数据

另存为文件"LR_5.csv"(文件编码设置为 UTF-8)。

略。。。。。。。。。。。。

任务 1.6 读取"LR_5.csv",插入"利润率"和"资产负债率"两列。根据

下表公式,计算对应的利润率和资产负债率,追加到"LR_5.csv"对应字段。分

别删除表中利润率、资产负债率不在-300%,300%范围内的行,将处理后的数

据另存为文件"LR_new.csv"(文件编码设置为 UTF-8),并在报告中呈现处理

后的数据行数、列数,及前 5 个企业的利润率、资产负债率。

bash 复制代码
数据的行数为30690,列数为19

任务 2 财务数据指标分析及可视化

任务 2.1 读取"LR_new.csv",根据表 3 要求统计数据,绘制相关的"行业营业利润对比分析"图,每张图表需在报告中进行呈现及分析。

bash 复制代码
读取数据
import numpy as np
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Bar, Line, Pie, Grid, Page
df2_1 = pd.read_csv('../result/LR_new.csv')
bash 复制代码
2019 年 9 月各行业大类的利润对比
data = df2_1[('2019-09-01'<=df2_1['Accper'])&(df2_1['Accper']<='2019-09-30')]  # 筛选出2019年9月

data = data.groupby('Indnme')['B001000000'].mean()  # 按行业大类分组,求利润总额的均值
bash 复制代码
bar1 = (
    Bar(init_opts=opts.InitOpts(chart_id=1,bg_color='#ffffff'))
    .add_xaxis(data.index.tolist())
    .add_yaxis("",data.values.tolist())
    .set_global_opts(
        title_opts=opts.TitleOpts(title="2019年9月各行业大类的利润对比"),
        datazoom_opts=opts.DataZoomOpts(type_="inside"),
    )
    .set_series_opts(
        label_opts=opts.LabelOpts(is_show=False),
    )
)
bar1.render_notebook()
bash 复制代码
2018 年 1 月至2019 年 9 月各行业大类利润率变化
data2 = df2_1[(df2_1['Accper']>='2018-01-01')&(df2_1['Accper']<='2019-09-30')]

data2['Accper'] = pd.to_datetime(data2['Accper'])
data2['季度'] = data2['Accper'].dt.quarter
data2['年份'] = data2['Accper'].dt.year

df_test = data2.groupby(['Indnme','年份','季度'],as_index=False)['利润率'].mean()
df_test['Indnme'].unique()

任务 2.2 读取"LR_new.csv",根据任务 2.1 结果,确定 2019 年 9 月营业

利润率均值排名第 1 的行业大类,并按表 4 要求绘制该行业大类相关的"行业企

业营收分析"图,每张图表需在报告中进行呈现及分析。

bash 复制代码
2.2.1
2019 年该行业各细类利润率对比
bash 复制代码
2019 年 9 月营业利润率均值排名第  1 细类为证券、期货业
bash 复制代码
2.2.2
bash 复制代码
2.2.3
bash 复制代码
 2.2.4

任务 2.3 利用可视化大屏制作工具,将任务 2.1 和任务 2.2 所列的 6 张图制

作成一个大屏,大屏命名为"行业与企业营业数据分析",并在报告中呈现。要

求大屏整体设计美观、布局清晰直观。

bash 复制代码
# 导入必要的库  
from pyecharts import options as opts  
from pyecharts.charts import Bar, Line, Pie, Scatter, Map, Grid  
from pyecharts.faker import Faker  
from pyecharts.charts import Bar, Line, Pie, Scatter, Map
from pyecharts import options as opts
from pyecharts.render import make_snapshot
from pyecharts.globals import ChartType
# 柱状图
............................................................................................
# 折线图
............................................................................................

# 饼图
pie1 ............................................................................................
# 散点图
............................................................................................
# 地图
............................................................................................
grid.render("行业与企业营业数据分析.html")

任务 3 企业利润预测及财务造假识别

任务 3.1

读取"financial_data.csv",计算各个指标与利润总额的相关性,

挑选相关度最高的 5 个指标。

bash 复制代码
import pandas as pd

# 读取csv文件
df3 = pd.read_csv(r"D:\B题-企业财务数据分析与造假识别\数据\financial_data.csv")
# 导入企业财务数据样本集

# 计算各个指标与利润总额的相关性

df3.columns

correlations = df3.corr()['LRZE'].sort_values(ascending=False)

# 打印前5个最大相关性的指标,第一个是利润总额本身不算
print(correlations.head(6))
bash 复制代码
LRZE       1.000000
YYSR       0.782726
YWFY       0.772832
YYCB       0.737736
YYSJJFJ    0.565440
ZCJZSS     0.238524
Name: LRZE, dtype: float64

任务 3.2

利用挑选的 5 个指标建立企业利润预测模型,运用建立的模型预

测"test.csv"表中给定企业的利润总额,并将预测结果以表格的形式在报告中呈

现。

bash 复制代码
df3[['YYSR','YWFY','YYCB','YYSJJFJ','ZCJZSS']] 
bash 复制代码
  
```bash
	TICKER_SYMBOL	LRZE
0	4953174			3.983941e+08
1	4961537			4.062123e+08
2	4962538			1.235635e+08
3	4968740			1.684884e+08
4	4973917			8.283722e+07
5	4978589			3.301489e+08
6	4978721			1.136986e+08
7	4986535			1.332788e+08
8	4990739			2.595591e+08
9	4990942			1.135440e+08

任务 3.3

"financial_data.csv"中包含一个"FLAG"字段用于标识财务数据造假("1"表示财务造假)。请利用表 6 所列关键因子,对样本数据"financial_data.csv"进行分析,挖掘财务造假的识别特征。根据你们的分析,对"financial_data_new.csv"所列 5 个企业的财务数据进行筛查,识别其中唯一的1 个涉嫌财务造假企业,并在报告中描述分析方法与结果。

bash 复制代码
```bash
	TICKER_SYMBOL	FLAG
0	4992858			0
1	4993201			0
2	4998808			0
3	4897311			1
4	4999709			0

四、数据说明

赛题数据文件夹具体内容如下所示。

完整代码请私聊 博主

相关推荐
sbjdhjd1 小时前
ThinkPHP 5.0.10 缓存写入型 RCE 复盘:从手动搭建、换行绕过到源码单步验证 | 05
java·后端·安全·spring·网络安全·数据挖掘·php
IT研究室3 小时前
最新大数据毕业设计选题推荐-基于大数据的酵母菌蛋白质细胞定位数据分析与可视化-大数据-Spark-Hadoop-Bigdata
大数据·数据分析·课程设计
Q26433650233 小时前
【有源码】基于 Hadoop 的强化学习智能体轨迹数据挖掘与可视化分析系统大数据毕设项目
大数据·hadoop·机器学习·数据挖掘·spark·课程设计·数据可视化
2601_962780695 小时前
管理科学本科应届生 经营分析与供应链分析岗位求职
数据分析
YangYang9YangYan6 小时前
2026 校招管理会计 JD 拆解,数据分析能力要求与工具清单
java·数据库·数据分析
夜郎king6 小时前
基于天地图 Cesium 三维服务实现三维地球及地球自转实践
数据分析·cesium·3d地图·三维地球
IT毕设实战小研6 小时前
基于大数据处理的京东商品销售态势分析与可视化设计
大数据·科技·机器学习·信息可视化·数据分析
临床数据科学和人工智能兴趣组6 小时前
399元现在超值!学R语言,订阅我们专栏就够了,包括了所有的内容,不断更新!
人工智能·数据挖掘·r语言·r语言-4.2.1·临床研究
Q26433650237 小时前
【有源码】基于大数据的药品多维度属性分析可视化系统 基于Spark的药品属性聚类与关联规则可视化分析系统
hadoop·机器学习·数据挖掘·spark·毕业设计·课程设计·大数据项目
Q26433650237 小时前
【有源码】基于大数据的零售交易者行为特征与生存状况数据分析及可视化 Hadoop+Spark大数据项目
大数据·hadoop·信息可视化·数据挖掘·数据分析·spark·毕业设计