excel学习库

excel表格_excel函数公式大全_execl从入门到精通

编程学习分享|Python布尔索引筛选数据,扇贝yyds!

一、初次邂逅

我是一名财务工作者,从事工作多年了,一直都是在使用与财务相关的软件,比如金蝶K3、oracle财务系统、Excel、金税系统等,和计算机接触比较多,深感计算机的许多便利之处。就像扇贝编程里说的,计算机是20世纪最先进的科学技术发明之一,我们应该学习它,掌握它,让它为人类服务。

一次偶然的机会,我在手机上看到了扇贝编程,虽已至不惑之年,对自己的时间和精力都有点担心,但当时抱着试一下的想法购买了课程。在后续不断的学习中,我发现这个课程做得真的很好,特别会鼓舞人,燃起了我想把编程学好的决心。加上我年轻时一直比较喜欢计算机,后来的学习就一直坚持了下来。

二、学以致用

在我的实际工作中,有一个需求:业务系统里的数据要和金税系统里的发票数据保持一致,发票号和发票金额要一一对应上。为了实现这个功能,需要把业务数据里引出的报表和金税系统里引出的报表进行比对。

在没有学习Python以前,我都是用Excel人工比对的,学完扇贝编程的数据分析课程后,我感觉可以应用在我的实际工作中,于是抱着试一下的想法编了一个数据比对的小程序。

首先,打开编辑器,用pandas打开从系统里引出的文件,先看一下这两个文件的情况。



直接用Excel打开文件,看着挺复杂的。这个是发票表,可以看到有很多的空白单元格,有的行还有小计列,这行小计如果不去除,就会造成数据重复。



我们先来处理这个表格,很简单,用fillna函数填充空白,然后用布尔索引来筛选数据。



接下来,我要得到一个所有发票号码的列表,为将来使用。发票号我们只要前8位即可,我用字符串的方法截取了一下,然后去掉重复的,导出到一个列表中。



接着,我按照“发票号码,开票日期,购方企业名称”进行汇总,然后重新设置索引,我又打印了一下发票的总金额,以便与金税系统总金额核对,看是否一致。



这张表格数据清洗重塑后,处理下一张表格。 先看一下,这张表格是从业务系统引出的。



这张表格数据很多,但只需关注标黄色的三列数,接下来,对它进行处理。



从上表中看到,大部份发票号码都在“CBI_Number”,还有些会在“Invoice_Number”列中。我们发现在“Invoice_Number”中的发票号,在“CBI_Number”是空白的,所以我们只需要用“Invoice_Number”列中对应的的数据填充一下值是空白的“CBI_Number”列即可。(我记得做这一步时,测试了好长时间,开始怎么都得不到我想要的结果,后来看百度,查了很多,才找到答案,要用loc这个函数才行)

填充好后,我们来筛选数据,去掉没用的数据。这就用到了上面引出的的发票列表。



对这个筛选出来的数据,进行汇总。



用Pandas里的merge函数,把经过整理的两张表进行合并,然后找出差异。



我们可以分别看一下,先看一下有多少数据对上了,然后把有差异的数据也筛选出来。



大功基本告成,然后下面就是把它引出来导入Excel文件了。我为了看起来舒服,又改了一下名,然后导出就行了。



上面就是数据比对的完整过程,做这个小项目,也让我长进了不少,更重要的是方便了自己的工作,以前至少一个小时的工作量,现在几分钟就能完成了,感觉自己还是挺棒的。

为了使这个程序更加完备,我又加了一些其他的代码。如下。



三、写在最后

编程学习,贵在坚持,如果下定决心,就全力以赴努力吧。一定要认真完成扇贝编程的作业,不能光看懂代码,一定要把代码敲一遍,在电脑上实现出来,让这种成功的感觉激励自己不断进步!

欢迎点击头像关注小编获得免费课程

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接