前言

回顾一下上次的案例模型,我们知道了只要写3行代码,就可以利用python对EXCEL数据做简单的筛选,说明了python是一门非常简单和实用的数据分析工具。前面学过的这几句简单的语言,不知道你们学会了没?今天我们依旧是利用ETL+Python的搭配组合,对EXCEL数据进行深层次的加工,这一次我们要做的是高级筛选,请跟着我一起学习吧。

厌倦了EXCEL想玩点新花样?教你利用Python做数据筛选(下)

数据源

我们还是用上次的那份电商订单明细表,数据已脱敏:

厌倦了EXCEL想玩点新花样?教你利用Python做数据筛选(下)

EXCEL筛选

我们回顾一下上一篇文章里的数据需求,第一个是根据订单日期筛选2010年的订单,第二个是根据订单等级去筛选高级的订单,这一次我们把筛选条件进行升级,增加一个条件:在原先两个筛选条件的基础上,筛选出利润金额前10的订单。如果在EXCEL里操作的话,可以利用公式或者自身的筛选功能去实现,但是在python又是怎样实现的呢?

厌倦了EXCEL想玩点新花样?教你利用Python做数据筛选(下)

我们可以在pycharm等软件上写python脚本去实现,但是我推荐大家用智分析的ETL功能去实现,智分析的ETL界面里也提供了python脚本的编写页面,并且很多简单的需求通过ETL就能实现,无需撰写复杂的代码,非常适合编程小白。

加载数据

打开智分析里ETL界面,我们先连接好数据源,我已经提前把EXCEL文件导入到了智分析的系统里,然后把关系数据源拉拽到展示区里,并在右边找到数据源存放的路径:

厌倦了EXCEL想玩点新花样?教你利用Python做数据筛选(下)

加载完成后,我们可以对数据源进行预览:

厌倦了EXCEL想玩点新花样?教你利用Python做数据筛选(下)

条件过滤

当完成了数据连接后,接下来就可以利用智分析ETL里自带的python脚本对数据进行各种处理,我们先把python的组件拉拽到中间的展示区,并与上面的关系数据源进行相连:

厌倦了EXCEL想玩点新花样?教你利用Python做数据筛选(下)

以下脚本是智分析自带的脚本,已经提前安装好了pandas和numpy的库,后面的函数也写好了一部分代码,只要根据以下脚本进行扩展,便可以在ETL上利用python进行数据清洗:

厌倦了EXCEL想玩点新花样?教你利用Python做数据筛选(下)

在输入python脚本之前,我们再明确一下要实现的需求,其中前面两个条件是和上次一样的,我们无需进行改动,直接复制脚本过来即可,如果不懂的可以查看我前一篇文章。第三个条件需要做的是筛选利润额前10的订单,这里我们引用pandas中的sort_values函数进行排序,原理类似于SQL中的order by,可以将数据集依照某个字段中的数据进行排序,后面接ascending=False,即对数据进行降序排列,head(10)代表的是取前10的值:

厌倦了EXCEL想玩点新花样?教你利用Python做数据筛选(下)

我们看一下python脚本执行后的效果,年份这一列把2010年给筛选出来了,订单这一列筛选的是高级的订单,订单利润这一列的数据按照降序把前10的数据给筛选出来了:

厌倦了EXCEL想玩点新花样?教你利用Python做数据筛选(下)

数据输出

完成python的筛选程序后,我们把执行筛选后的表格进行保存,可以选择保存在数据库中,也可以保存在数据集里,这里我依旧选择数据集的保存方式,因为方便在EXCEL里进行调用:

厌倦了EXCEL想玩点新花样?教你利用Python做数据筛选(下)

回到EXCEL里,点击EXCEL插件里的“视图”,在右边会出现智分析的数据集面板界面,点击下拉菜单,便可以找到保存在云端的数据集,也可以直接输入文件名进行搜索:

厌倦了EXCEL想玩点新花样?教你利用Python做数据筛选(下)

点击EXCEL工具栏上的“刷新”,数据集里的字段便会显示在EXCEL里,我们就可以利用这些数据在EXCEL里进行数据分析了:

厌倦了EXCEL想玩点新花样?教你利用Python做数据筛选(下)

下篇预告

本文介绍了python的多条件筛选功能,下一篇将讲解如何对字段进行去重,敬请关注。