运用Python技术批量计算学生餐食材成本的方法——以K县学生餐资金管理使用情况审计为例
教育事关民生福祉。学生餐资金使用管理事关广大学生的切身利益。在审计学生餐事项时,审计人员一般会从食材采购的“价”和“量”上入手,若通过传统的人工核对需要耗费大量人力物力,难以由点及面反映问题。本文以K县学生餐资金管理使用情况审计为例,以食材采购价格为切入点,介绍Python技术在批量计算学生餐食材成本及价格对比中的应用方法。 在K县学生餐资金管理使用情况审计中,审计人员获取了大量食材数据:采购环节的数据结构为对每一天每一位供应商单独建表;配送环节的数据结构为对每一天每一所学校单独建表。表格中每一行对应一个食材品类,并列明采购数量和单价,数据量庞大且分散。审计人员抽查后发现,该县食材供应存在采购价格过高等疑点。为验证该现象是否具有普遍性,审计人员采用Python技术对食材数据进行分析,揭示是否存在高价采购以收取回扣、克扣食材成本牟利等问题。 数据采集。学生餐食材采购、配送数据是由被审计单位直接提供,文件格式多样,如学校食堂的订餐系统数据库多为MySQL、Oracle,供应商食材采购清单大部分为Excel文件。审计人员通过使用mysql.connector.connect()函数建立与MySQL数据库的连接,并将所需数据提取出来,通过DataFrame方法创建为可用文件,再使用to_csv方法保存为CSV文件,以便后续使用。 数据整合。食材配送企业为方便管理,每月、每周单独建表,甚至对每个食材品类单独建表,所以审计人员采集到的数据会分散在多张表中,一个学期的数据涉及上百个Excel文件,如果分别导入Python进行分析会大量增加重复性操作。因此,审计人员选择对数据进行整合,具体方法为:使用import语句导入openpyxl库和os库,通过openpyxl.Workbook方法新建一张表,接着使用os.walk方法遍历存有需要整合数据的目标文件夹,将文件夹中所有符合需要的表格存到新建的表中进行合并。 数据清洗。由于食材数据来源复杂,整合后的数据仍存在格式不规范、重复、缺失值等问题,通过Python编写函数和使用库实现对数据的清洗。首先,对于缺失值的处理方式有两种:关键信息缺失的行,审计人员一般认为该行信息已没有价值,使用dropna方法对含有缺失值的行进行删除;非关键信息的缺失行,采用fillna方法对缺失值进行填充,第一位参数设置为需要填充的值,inplace参数设置为True。其次,使用pandas的drop_duplicates方法对整合数据中的重复行进行清除。最后,通过str.strip()函数,对数据中文本列两端空白字符进行清理,方便后续文本查找。 食材成本占比计算。根据该市教育局等部门印发的《关于进一步规范学生餐财务管理的指导意见》规定,学生餐主要成本为学校食堂加工过程中所用的原材料和辅助材料等支出,原则上主要成本不低于餐食价格标准的70%。为核实各供餐企业的主要成本占比,审计人员以供餐公司为单位,将原本以学年度划分的数据重新以会计年度进行划分,计算供餐公司采购食材总金额,并与供餐公司会计账食材采购成本相比对,核实会计账目是否真实,再进一步与供餐公司收取的学生餐费收入进行比对,检查是否达到成本占70%的标准。这一部分的操作主要通过groupby、sum方法实现。但在实际操作中,因食材采购时间关键字的格式不统一,审计人员先通过pandas.to_datetime方法将采购日期列转换为日期时间类型,再采用year、month或split方法将时间关键字拆分成年、月、日三个字段,最后以供餐公司名称和年份字段作为关键字,运用分组操作进行处理,并针对采购总价这一数据项执行求和运算,得到采购食材成本。根据测算,某公司的食材成本支出仅占餐费收入的39.29%。 食材采购单价分析。根据该省教育厅等部门印发的《关于实施农村义务教育学生营养改善计划提质行动的通知》规定,学生营养改善计划所采购的食材不得高于当地同类食材市场价格(或当地居民生活必需品监测价格),根据当地教育部门与食材配送企业签订的合同约定,食材定价价格不得超过询价均价。以市场监测数据为例,审计人员将市场监测数据读取到DataFrame对象中并以监测时间为关键字进行升序排列,再运用pandas.merge方法,将how参数设置为inner,on关键字段为食材品类、食材采购时间,对食材采购数据表、市场监测价格表进行表间内连接,条件设置食材采购时间在两次市场监测价格时间之间,每行对应的市场监测价格自动填写为上次市场监测价格,由此形成可供对比分析的中间表。此时,中间表因食材品类众多造成数据量大不利于分析,审计人员通过str方法提取中间表食材品类数据,用if语句筛选需要特别关注的采购量较大、采购周期较稳定的品类,再新建价差列与总价差列,价差列列值等于采购单价减去监测价格,总价差列列值等于价差乘以数量,最后将食材品类字段作为关键字进行分组操作、将总价差为正设置为筛选条件、针对总价差字段进行求和运算,即可得到超市场监测价多支付的采购金额。经对该县2023年5月至2024年7月采购的猪肉、牛肉等8种食材价格进行分析,发现部分时期结算价格高于同期市场监测价格,增加食材采购成本31万元。 通过采用以上数据分析方法,审计发现食材采购价格超过市场检测价格或超过合同约定价格、供餐企业食材成本不达标等问题,经核实取证,进一步发现价格稳控机制落实不到位,供餐企业财务不真实、偷税漏税等问题。目前,相关问题已移送至相关单位进行处理。被审计单位积极落实价格稳控机制,切实控制食材采购成本,将对外承包食堂收回自办自管,严格执行用餐标准。(作者单位:贵州省贵阳市南明区审计局)