土木在线论坛 \ 工程造价 \ 造价软件 \ 从SQL到Python在区县财政预算执行审计中的应用

从SQL到Python在区县财政预算执行审计中的应用

发布于:2024-06-11 13:45:11 来自:工程造价/造价软件 [复制转发]

在当今数字化的时代,审计工作也越来越依赖于技术手段。2001年审计署开始计算机审计中级培训,最早开设的课程包括VB、ACCESS和SQL等语言的学习,SQL语言也是最早一批在审计工作中进行应用的计算机编程语言,也是包括区县级审计机关最早接触的计算机语言。Python虽然诞生于1989年,到中国的时间可以追溯到1997年,正值中国计算机科学教育和研究领域刚刚开始蓬勃发展的时期,但一直到2017年末才开始真正在中国流行。而计算机审计也在经历革新,计算机审计阶段、信息系统审计阶段以及智慧审计阶段,三个阶段的形成标志着计算机审计飞速向前发展。近年来审计计算机中级培训中开设了Python高级编程语言的学习,也是基于Python在数据分析、机器学习和自动化领域的广泛应用,Python的重要性在审计领域逐渐得到认可。目前,区县级财政预算执行审计中普遍应用SQL关系型数据库语言对数据库表单进行分析处理。随着智慧审计应用技术的深入发掘,新应用场景的开发,需要更多的计算机技术进行支撑。SQL、Python等数据库编程语言的学习,同样是基于越来越复杂的智慧审计应用环境,便于让审计人员更好的适应未来信息技术的发展。

一、SQL和Python在财政审计应用场景中的结合

为了更加高效的完成数据分析工作,完成从数据分析到疑点表“一键式”操作,提高审计效率,审计组利用“SQL Python”在财政审计应用场景中的进行结合应用。如开展对本级财政一体化数据分析,相关的数据表单在SQL数据库中进行查询分析,利用Python链接SQL数据库中的“zqczsj”(区级财政一体化数据)数据库中的“zfmx”(国库集中支付明细)数据库表单,查询预算单位名称为“某单位”的支付数据情况,并将疑点自动生成“疑点表.xlsx”,步骤简述如下:

1.导入pymssql和pandas库,并设置数据库连接信息。

2.使用pymssql.connect()方法建立与数据库的连接,并创建一个数据库游标对象(cursor)。

3.定义查询语句(query),该语句从SQL数据库中选择所有列,但只包括“预算单位名称”字段包含特定字符串(这里是某单位)的记录,使用游标对象的execute()方法执行查询。

4.获取查询结果:从游标的描述信息中提取查询结果的列名称,用fetchall()方法获取所有查询结果,将查询结果转换为DataFrame,同时使用pandas库的DataFrame方法,将查询结果转换为DataFrame对象,列名为之前提取的列名称,保存查询结果到Excel文件,指定要保存的Excel文件名为“疑点表.xlsx”。

运行后显示结果如下:


疑点表内容:


二、Python相对SQL在对于非结构化数据处理优势

SQL和Python都可以用于处理数据,但对于非结构化数据的处理,它们的优势有所不同。SQL主要用于关系型数据库管理系统(RDBMS),擅长处理结构化数据,如表格形式的数据。它提供了强大的查询和操作功能,能够高效地对结构化数据进行筛选、排序、聚合等操作。SQL的优势在于其简洁性和效率,特别适用于大规模数据的处理和分析。然而,对于非结构化数据,如文本、图像、音频、视频等,SQL的处理能力相对有限。非结构化数据通常需要更复杂的处理方法,例如文本识别、音频分析等。Python具有丰富的库和工具,可用于处理各种类型的数据,包括非结构化数据。Python的优势在于其灵活性和可扩展性,可以通过编写自定义的代码和使用相关的库来处理非结构化数据。因此,如果是处理结构化数据,SQL可能是更合适的选择,因为它提供了高效的查询和数据管理功能,但对于非结构化数据处理,Python可能更具优势,因为它提供了更灵活的编程接口和丰富的工具库。以下是在财政审计中利用Python处理常用的文本资料,查找出高频词,锁定审计重点事项的实例,代码简要说明如下:

1、导入os、win32com.client、jieba、pandas、matplotlib、PIL、wordcloud、numpy库。

2.定义process_file函数,接收输入和输出文件夹的路径作为参数,使用win32com.client打开Word应用程序,并遍历输入文件夹中的所有Word文档,对每个文档读取其内容,并提取文本段落,将提取的文本段落保存到一个列表中。

3.定义jieba_text函数,该函数接收一个包含文本的列表作为参数,对列表中的每个文本进行分词处理。

4、定义data_stu函数,接收分词后的文本列表作为参数,将所有分词结果合并,并按空格分割成单词列表,使用collections.Counter统计每个单词的频率,创建一个pandas DataFrame,包含单词及其频率。

综上所述,从读取Word文档、文本提取、分词处理、频率统计到生成词云图像,都包含在内,通过输入文件夹路径来指定要处理的文档,最终生成可视化图像。如查询“区2022年预算执行情况和2023年预算草案的报告”,找出高频词,运行后显示结果如下:

三、Python相对SQL在结构化数据可视化的图形方面优势

SQL和Python在数据分析和可视化方面各有优势,SQL在数据查询和管理方面非常强大,而Python在数据处理和可视化方面更具灵活性,python拥有丰富的可视化库,如Matplotlib、Seaborn、Plotly等,这些库提供了丰富的图形类型和高度可定制的样式。相比之下,虽然SQL Server等工具也提供了一定的数据可视化功能,但其种类和灵活性通常不如Python。其次,python的数据处理与可视化的整合方面也具有优势,Python可以方便地与其他数据处理和分析库(如Pandas、NumPy等)集成,使得数据处理和可视化过程更加顺畅,而SQL主要用于数据查询和管理,虽然也可以生成一些基本的图表,但在数据处理的复杂性和灵活性上通常不如Python。区县审计机关在财政审计中通常会关注被审计单位资产、负债等变动情况,笔者通过“pandas”和“matplotlib”库对资产类部分科目2021年至2023年末数据进行图形化分析,代码简要说明如下:

1.导入pandas、matplotlib.pyplot库。

2.使用pd.read_excel函数读取Excel文件,将数据存储在df这个DataFrame对象中。

3.设置图形大小,并绘制柱状图,使用plt.bar函数绘制柱状图,分别展示2021年末、2022年末和2023年末的资产情况,并通过调整position参数来控制每个柱状图的位置,使它们并排显示,同时设置不同的颜色来区分不同的年份。

4.使用plt.legend()添加图例,以区分不同年份的数据,并使用plt.xlabel、plt.ylabel和plt.title分别设置x轴标签、y轴标签和图形标题,使用plt.show()输出图像。

通过对Excel表单中资产类科目金额分析,用柱状可视化图形查看各科目近三年的变动趋势,结果如图:

审计大数据分析从SQL过渡到Python是技术进步和审计需求变化的必然结果,这一转变的背后有几个关键驱动力,包括数据复杂性的增加、分析需求的深化以及Python社区的繁荣,此外,Python的易读性和易学性也使得它在审计领域得到更广泛的应用,这种转变将提高审计工作的效率和准确性,有助于审计机关更好地履行职责,维护财经纪律和市场秩序。

全部回复(0 )

只看楼主 我来说两句抢沙发
这个家伙什么也没有留下。。。

造价软件

返回版块

1.23 万条内容 · 211 人订阅

猜你喜欢

阅读下一篇

梁平法7--钢筋长度计算2

我们今天讲梁钢筋长度计算2,也就是梁原位标注支座筋的计算。 支座负筋分:端部支座负筋 、 中间支座负筋 端部支座负筋:端部弯锚、端部直锚 支座负筋排数:第一排 、第二排......,也有出现多排负筋的情况。下面我们就从端部支座负筋开始。 1、第一排端部支座负筋长度计算 端部支座负筋,其实就是梁上部的原位标注,图纸会标注排数的,如图1所示。

回帖成功

经验值 +10