首页
>审计动态>审计天地
Python技术在部门预算执行审计中的应用场景
发布日期:2022-07-13 08:47 访问次数: 信息来源:威海市审计局 字号:[ ]


部门预算执行审计是各级审计机关开展审计监督的重要内容,审计涉及的单位数量多、数据类型多、资料种类多,采用传统方法和人工手段难以全面处理所涉资料,如何最大化挖掘利用数据承载的有效信息,是一线审计人员面临的重要课题。Python作为数据分析领域的主流应用技术,在文本模糊匹配、冗错数据清洗、信息要点抽取、数据关联比对、文件操作处理等方面功能强大,尤其在处理非结构化数据和文件批量操作上,Python相比传统SQL技术优势明显。本文主要针对非结构化和批量化数据处理的难点,以部门预算执行绩效审计和后期数据疑点批量切分为例,阐述Python技术在部门预算执行审计中的应用场景。

一、审计关注的问题和数据需求

1.多部门绩效审计如何精准高效

部门整体绩效和项目实施绩效是部门预算执行审计的重要内容,应着重关注目标申报、绩效监控和绩效评价等环节工作开展情况,审查项目绩效目标编制是否细化明确,支出绩效监控是否到位,绩效监控内容是否完整,自评数据填报是否准确,是否实现项目支出绩效自评全覆盖,是否对项目所有目标进展及情况进行监控等。

所需要的主要数据有:市直属所有一、二级预算单位的绩效工作资料,主要包括事前绩效评估报告、部门重点绩效评价报告、项目绩效目标申报表、项目绩效监控表、项目绩效自评表、部门整体绩效目标申报表、部门整体绩效自评表等。数据特征为表格多、格式多,填报样式统一。

2.多部门数据疑点如何高效拆分

针对审计多问题、多部门、多负责科室的数据分析疑点库,探索运用Python的文件批处理模块,将涵盖市直所属一、二级预算单位的N个方面数据疑点表进行自动化处理,将所有疑点按负责科室、主管部门高效分类切分,方便审计组直接推送被审计单位延伸核实,大幅度提高审计效率。

所需要的主要数据有:部门预算执行数据分析生成的疑点表,字段包含主管部门、负责科室和其他与疑点相关的专属字段。单位名称中间表,主要包括业务主管部门、负责科室、预算系统单位名称、核算系统单位名称、决算系统单位名称、指标支付系统单位名称等。

二、Python技术解决的问题瓶颈和思路方法

(一)项目实施的问题瓶颈

1.在单位和项目绩效审计中,从财政局统一采集的各部门单位的绩效工作资料多为非结构化和半结构化数据,涉及单位多、项目多、指标多,W市全年绩效管理的项目多达300余个,大量的数据表格靠人工检查核对,费时费力、效果不佳,传统的数据采集处理技术难以有效发挥作用。另外,所采数据格式多为Excel、Word或PDF表格数据,在数据标准化的过程中存在不小难度,如何将绩效资料的数百个项目表格统一处理成二维数据表,是Python数据处理的主要目标。

2.数据疑点的核实效果直接影响审计质量,传统的数据分析方法生成大量的分析疑点表,数据分析后期的疑点数据种类越多、数量越大,审计组切分的工作量就越大,错误率也越高,核实效果也越差,运用Python技术快速切分疑点数据以提高审计效率迫在眉睫。

(二)解决问题的思路方法

在采用传统数据库技术进行分析的基础上,充分发挥Python技术在文本处理和数据分析方面的优势,利用Pandas、openpyxl、OS、fuzzywuzzy等功能模块,对多表格绩效数据处理分析和后期数据疑点批量切分,有效解决多文档信息抽取、处理、分析和切分难点。

1.绩效审计方法

下面围绕绩效审计相关数据抽取和应用目标,阐述不同格式数据统一采集为二维数据表及拓展应用步骤。

步骤一:转换统一文件格式。以绩效自评表为例,利用os库的listdir(path)方法或walk(path)方法获取文档列表,判断绩效自评表的格式(PDF、Word、Excel),采取相应的读取方式,遍历读取各文档内容,利用openpyxl 和 pdfplumber 库,将PDF格式表格批量转换成Excel表;利用openpyxl和python-docx库,将Word文档表格批量转换为Excel表,并将转换结果表统一存放在绩效自评文件夹中。

步骤二:抽取要点信息汇总。利用os库批量读取绩效自评文件夹的所有绩效自评Excel数据,抽取项目名称、实施单位、年初预算数、全年预算数、全年执行数、分值、执行率、预期目标、实际完成情况等主要字段,将每个项目或单位的主要自评内容抽取为一行数据,汇总成一张绩效自评结果表。采取同样方法处理绩效目标申报和绩效监控表。

步骤三:模糊匹配关键字段。利用fuzzywuzzy模块中的process.extractOne方法,将不同数据来源的单位名称和项目名称分别进行模糊匹配,生成单位名称和项目名称中间表,解决不同数据表之间部分项目名称和单位名称不匹配、无法关联的问题。对未匹配上的项目或者单位生成疑点表,审查是否落实项目绩效自评或绩效监控全覆盖要求。

步骤四:采集入库关联分析。按照上述方法分别处理项目绩效目标申报表、项目绩效监控表、项目绩效自评表、部门整体绩效目标申报表、部门整体绩效自评表,将所形成的结构化数据结果表导入SQL server数据库,以单位名称和项目名称为关联字段,关联对比数据库中年度预算、决算、财务、财政和项目库等数据,汇总比较绩效评价表格预算数、执行数填报是否准确,执行率是否正确,分值是否符合实际等情况,核查绩效自评工作开展是否真实有效。

步骤五:文本匹配模糊比对。利用fuzzywuzzy模块中的fuzz.ratio方法的模糊匹配功能,一方面,将项目绩效目标申报表的项目目标与项目绩效自评表的项目完成情况进行模糊匹配,设置匹配相似阈值为95,筛选出项目目标与实际完成情况几乎完全相同的疑点项目,延伸是否存在自评工作走过场、不符合客观实际的问题。另一方面,将项目绩效目标申报表的项目目标与项目绩效监控表的项目目标进行模糊匹配,筛选目标变化较大的项目疑点,延伸是否存在项目未经审批,擅自改变项目绩效目标的情况。

2.疑点批量切分方法

下面以W市18类2125条疑点数据、272家疑点部门单位、15个疑点延伸科室为例,阐述如何将所有疑点以主管部门、负责科室为维度,自动切分形成某科室文件夹下多个部门文件夹、各部门文件夹下多张疑点类型表的所期效果。

步骤一:统一疑点表格式。利用fuzzywuzzy模块的模糊匹配功能,制作常规数据分析所需的单位名称中间表,主要包括主管部门、负责科室、预算系统单位名称、核算系统单位名称、决算系统单位名称、指标支付系统单位名称等,以中间表的单位名称作为关联字段,将SQL数据分析分析过程中产生的数据疑点,转换为包含主管部门、负责科室两个标志字段的疑点表。

步骤二:批量建立疑点科室文件夹。新建“疑点处理结果”文件夹,构建负责科室数据列表,利用os.mkdir方法批量生成“疑点处理结果”文件夹下的15个科室子文件夹。

步骤三:分类遍历选取疑点数据。利用OS库和Pandas库实现数据的读取和处理,将所生成的18类疑点表导出到“2021年度数据分析疑点”文件夹中,遍历该文件夹,逐个读取各表数据形成数据表“df”,遍历各负责科室,选取某科室疑点数据形成数据表“df1”,在此基础上,遍历各主管部门,选取某部门疑点数据形成数据表“df2”。

步骤四:分科室导出疑点结果表。判断科室子文件夹下是否存在疑点的主管部门子文件夹,如不存在,则先使用os.mkdir方法生成主管部门子文件夹,将数据表“df2”导出到主管部门子文件夹下;如存在,则直接将数据表“df2”导出到主管部门子文件夹下。同时,间接统计各疑点、各科室、各部门的数据疑点数量,形成疑点切分基本情况汇总表。

三、Python技术在部门预算执行审计中取得的成效

一是全方位提高绩效审计效能。运用Python辅助开展绩效数据分析,批量筛选形成5大类200余条疑点,有力揭示绩效评价工作开展不真实、绩效自评数据填报不准确、项目绩效监控不到位、项目绩效自评未实现全覆盖、绩效目标编制不够细化、绩效监控内容不完整等典型问题,为高效开展绩效审计提供充分有效的大数据支撑。

二是大幅度提升疑点核查效率。该方法适用大批量疑点问题的快速切分,相比人工辨识和数据库操作方式,具有适应性强、准确率高、复用性好的特点,审计组仅用一周时间完成了2000余条数据疑点的核实取证,核实率达到100%,初步实现了多表格批量处理,多疑点批量切分,有效提高了大数据审计效率,提升了审计业务自动化水平。 王砚  










打印本页 关闭窗口