在平时工作中,我们经常需要下级单位人工填报各类数据,而很多数据需要先下发数据文件,再要求下级单位根据下发的内容去填报。如果下级单位较多,拆分文件就是一件很耗费精力的事儿。例如下图所示的文件,假设是一家银行全行的贷款台账(每一行代表一笔贷款),现在总行要下发给分行,让分行将每笔贷款的营销人员信息补充上来(填写最后两列)。
下面我们将演示如何使用Python的pandas库,将文件按分行进行拆分,以便发给各家分行去补充信息。程序的源代码如下:
程序的第19行,我们使用unique函数,将所有的分行名称去重后,打印出来,这里的每一家分行未来将是单独拆分出一个文件。
程序的运行效果如上图所示。unique函数将只返回3个元素(即3家分行)。后续我们将根据这3个元素,依次生成单独的文件
接下来程序的第25行,我们使用一个for循环,循环处理这3个元素。每次循环都会生成一个对应的独立文件。
程序的第27行是数据的筛选条件,在这里的含义是筛选出分行名称为当前循环对应的分行名称。也就是按分行名称筛选数据。
程序的第29行,我们使用当前循环对应的分行名称,构造出文件名变量,用于后续保存文件。
程序的第31行,实质上是调用to_excel保存文件。数据的条件为criterion1,文件名称是file_name。
程序经过3次循环,最终将数据按分行名称筛选出来,并保存到对应的文件中。
上图演示的就是单独拆分后的一个文件内容。在文件夹中就自动生成3个文件。
这里要补充一个小细节,就是程序的第22和23行,由于读取后的发放日和到期日字段的数据类型为datetime64,如果直接保存到文件中,除了年月日,还会把时分秒也保留下来,如果大家只希望保存年月日信息,可以像上面的程序一样转换一下。
好了,至此我们就完成了整个拆分过程。需要拆分的机构越多,文件越多,上面的程序就会越能节约你的时间。希望这段程序能抛砖引玉,提供一个思路,大家可以根据自己的实际工作场景来适当地进行修改。
感谢您的阅读,本人正在积累粉丝,希望您能点一下“关注”,对我的努力给予支持。