Python 报表自动化/袁佳林
这篇文章是『读者分享系列』第二篇,这一篇来自袁佳林同学,这是他在读完我的书以后做的第一个Python报表自动化项目,现在他把整体的思路以及实现代码分享出来,希望对你有帮助。
你还可以看『读者分享系列』的第一篇:Python中的这几种报错你遇到过吗?
1.案例场景
作为企业的数据统计岗,每天都需要做很多报表,日报、周报、季报、月报。如果我们能利用Python的数据分析功能把这些常规的流程标准化的报表自动化,那么我们将能有更多的时间集中于数据背后的业务发展及逻辑的分析上,这样才能被称为是企业的数据分析师,而不是简单的数据搬运工。下面我们通过一个简单的案例来看看Python报表自动化的建模过程。某银行贷款业务部门数据分析员每天需要根据系统生成的个人贷款客户信息表统计管辖区域内各经营单位的不同贷款产品今年的投放情况。源数据表格式及字段如下图所示;
需要统计的数据报表如下图所示:
2.Excel制作过程
结合以上两张图,我们知道利用Excel的数据透视表功能就制作该报表:选中数据表中任意一个单元格,点击插入数据透视表,然后按以下步骤执行:
将合同生效日字段放在页区域(筛选今年)
将用途字段放在列区域。
将单位字段放在透视表的行区域。
当处理到单位字段时我们会发现,表中每一笔贷款都有三家网点进行业绩分成。我们需要将分成比例也考虑进去。所以透视表中的行区域及值区域不能简单的放入单位1和贷款金额。此时大部分人都会想到先在数据源表格中添加三列按分成比例分成以后的贷款金额。
三个数值的计算方法分别为:
分成贷款金额1=贷款金额*分成比例1
分成贷款金额2=贷款金额*分成比例2
分成贷款金额3=贷款金额*分成比例3
然后将单位1及分成贷款金额1拖放到透视表的行区域及值区域。求出每个网点在分成金额1上的贷款投放,用同样的方法将各网点在分成贷款金额2及3的和。于是就会得到结构如下的三个数据透视表:
最后一步就是运用VlOOKUP将同一家网点的同种贷款金额整合相加到日报相对应的单元格里,实现最后的报表输出。
以上流程每天都需要进行重复:插入列、编写公式、做数据透视表、VLOOKUP,相信就算是熟悉Excel的人也需要华20到25分钟,而在操作过程中很容易因为疏忽而造成错误。如此循环往复,效率低