小AO作为2022年其赛事的一等奖的获奖者,跟各位小伙伴们分享一下区域赛的相关题型及相关知识点(大数据分析方面):
1、题型主要是以填空题为主。对区域赛来说还是比较简单的,小AO区域赛能拿满分,这是幸运的。
2、大数据方面。主要考三个模块:pandas、numpy、matplotlib。了解这三个模块的相关方法以及一些内置函数。如:merge、contains、groupby、replace、apply、map、pivot_table、还有读取数据read_excel都是高频词。同时,对于可视化要了解各个图形的相关方法
一共有四个样卷,本文为样卷一,其他样卷可在小AO专栏查看;需要数据的小伙伴们,可以找小AO或者评论区@小AO
案例背景:
天津同杉商贸有限责任公司是一家主营生产拼图玩具(纸质、木质、塑胶、金属)的批发商。
制作科目余额表
现在要求根据天津同杉商贸有限责任公司2022年3月发生的80笔的经济业务的财务核算数据生成科目余额表。
一、科目余额表制作步骤:
第一步:读取【天津同杉商贸有限责任公司业财资料.xlsx】工作簿,根据给定的【期初余额】中的【总账科目】、【借方余额】、【贷方余额】这三列制作科目余额表期初的部分;
第二步:读取【天津同杉商贸有限责任公司业财资料.xlsx】工作簿,根据给定的【记账凭证】中的【总账科目】、【借方金额】、【贷方金额】这三列制作科目余额表本期的部分;
第三步:根据总账科目拼接制作的期初与本期的两个部分,然后计算期末数值,最后需要将期末数值拆分成期末借方余额、期末贷方余额。
第四步:将生成的科目余额表导出,放在路径为【excel/2022BKQY财务数据分析案例】文件夹下。
二、 科目余额表制作内容:
1.导入包。
import pandas as pd
import numpy as np
2.读取【excel/2022BKQY财务数据分析案例/天津同杉商贸有限责任公司业财资料.xlsx】工作簿中的【期初余额】工作表,跳过第一行的公司名称。
file = 'excel/2022BKQY财务数据分析案例/天津同杉商贸有限责任公司业财资料.xlsx'#路径
qc_data = pd.read_excel(file,sheet_name='期初余额',header=1)#读取
qc_data
3.由于只要考虑期初各总账科目的金额,所以需要进行数据筛选,删除多余的【明细账科目】、【期初数量】、【期初单价】列,删除【合计】行。
qc_data = qc_data.drop(['明细账科目','期初数量','期初单价'],axis=1)#删除多余列
qc_data = qc_data.drop([252]) #删除合计的那一行
qc_data
4.根据【总账科目】分组求和,并且重命名【借方余额】改为【期初借方余额】,【贷方余额】改为【期初贷方余额】。
qc_data = qc_data.groupby(['总账科目']).sum()#分组求和
qc_data = qc_data.rename(columns={'借方余额':'期初借方余额','贷方余额':'期初贷方余额'})#重命名
qc_data
5.读取【excel/2022BKQY财务数据分析案例/天津同杉商贸有限责任公司业财资料.xlsx】工作簿中的【记账凭证】工作表。
bq_data = pd.read_excel(file,sheet_name='记账凭证')#file是变量,前面第一次读取的时候定义了
bq_data
6.筛选出需要的列【总账科目】【借方金额】【贷方金额】。
bq_data = bq_data[['总账科目','借方金额','贷方金额']]
bq_data
7.根据【总账科目】分组求和,并且重命名【借方金额】改为【本期借方发生额】,【贷方金额】改为【本期贷方发生额】。
bq_data = bq_data.groupby(['总账科目']).sum()#分组求和
bq_data = bq_data.rename(columns={'借方金额':'本期借方发生额','贷方金额':'本期贷方发生额'})#重命名
bq_data
8.期初余额表qc_data与本期发生表bq_data拼接,拼接后缺失值用0填充,然后添加【期末数值】列。
km_data = pd.merge(qc_data,bq_data,left_index=True,right_index=True,how='outer')#两张表外连接,连接键均为各自的索引
km_data = km_data.fillna(0)#缺失值处理
km_data['期末数值'] = round(km_data['期初借方余额']-km_data['期初贷方余额']+km_data['本期借方发生额']-km_data['本期贷方发生额'],2)
km_data
9.将【期末数值】拆分成【期末借方余额】和【期末贷方余额】,【期末数值】大于0时,为【期末借方余额】;小于0时,为【期末贷方余额】。
km_data['期末借方余额'] = np.where(km_data['期末数值']>0,km_data['期末数值'],0)#新增【期末借方余额】列
km_data['期末贷方余额'] = np.where(km_data['期末数值']<0,round(km_data['期末数值']*(-1),2),0)#新增【期末贷方余额】列
km_data = km_data.drop(['期末数值'],axis=1) #删除【期末数值】列
km_data
10.最后添加【合计】行将每一列求和。
km_data.loc['合计'] = km_data.apply(lambda x: round(x.sum(),2))#新增合计行
km_data = km_data.reset_index()#索引重置
km_data
11.现在可以将制作好的【2022年3月科目余额表】以工作簿的形式导出到【excel/2022BKQY财务数据分析案例】文件夹下。
km_data.to_excel('excel/2022BKQY财务数据分析案例/2022年3月科目余额表.xlsx', index=False)