效益,因管理而变,管理因我们(Smartbi)而变
发布时间:2021-03-05 游览量:3471
python是一门非常简单和实用的数据分析工具,我们知道其实可以利用python对EXCEL数据做简单的筛选。今天我们利用ETL+Python的搭配组合,对EXCEL数据进行深层次的加工,这一次我们要做的是高级筛选,请跟着我一起学习吧。
数据源
我们用电商订单明细表:
EXCEL筛选
我们回顾一下上一篇文章里的数据需求,第一个是根据订单日期筛选2010年的订单,第二个是根据订单等级去筛选高级的订单,这一次我们把筛选条件进行升级,增加一个条件:在原先两个筛选条件的基础上,筛选出利润金额前10的订单。如果在EXCEL里操作的话,可以利用公式或者自身的筛选功能去实现,但是在python又是怎样实现的呢?
我们可以在pycharm等软件上写python脚本去实现,但是我推荐大家用Smartbi智分析的ETL功能去实现,Smartbi智分析的ETL界面里也提供了python脚本的编写页面,并且很多简单的需求通过ETL就能实现,无需撰写复杂的代码,非常适合编程小白。
加载数据
打开Smartbi智分析里ETL界面,我们先连接好数据源,我已经提前把EXCEL文件导入到了Smartbi智分析的系统里,然后把关系数据源拉拽到展示区里,并在右边找到数据源存放的路径:
加载完成后,我们可以对数据源进行预览:
条件过滤
当完成了数据连接后,接下来就可以利用Smartbi智分析ETL里自带的python脚本对数据进行各种处理,我们先把python的组件拉拽到中间的展示区,并与上面的关系数据源进行相连:
以下脚本是Smartbi智分析自带的脚本,已经提前安装好了pandas和numpy的库,后面的函数也写好了一部分代码,只要根据以下脚本进行扩展,便可以在ETL上利用python进行数据清洗:
在输入python脚本之前,我们再明确一下要实现的需求,其中前面两个条件是和上次一样的,我们无需进行改动,直接复制脚本过来即可,如果不懂的可以查看我前一篇文章。第三个条件需要做的是筛选利润额前10的订单,这里我们引用pandas中的sort_values函数进行排序,原理类似于SQL中的order by,可以将数据集依照某个字段中的数据进行排序,后面接ascending=False,即对数据进行降序排列,head(10)代表的是取前10的值:
我们看一下python脚本执行后的效果,年份这一列把2010年给筛选出来了,订单这一列筛选的是高级的订单,订单利润这一列的数据按照降序把前10的数据给筛选出来了:
数据输出
完成python的筛选程序后,我们把执行筛选后的表格进行保存,可以选择保存在数据库中,也可以保存在数据集里,这里我依旧选择数据集的保存方式,因为方便在EXCEL里进行调用:
回到EXCEL里,点击EXCEL插件里的“视图”,在右边会出现Smartbi智分析的数据集面板界面,点击下拉菜单,便可以找到保存在云端的数据集,也可以直接输入文件名进行搜索:
点击EXCEL工具栏上的“刷新”,数据集里的字段便会显示在EXCEL里,我们就可以利用这些数据在EXCEL里进行数据分析了:
电话:
邮箱: