我用Python做了一个咖啡馆数据分析

我用Python做了一个咖啡馆数据分析

点点写在前面:
这次迎来了一位Python二期学员的分享,知乎大V东哥 @我最帅,他用行动告诉我们如何花四个多月业余时间完成Python基础学习,然后今天在这里分享一个检验学习成果的咖啡分析案例。这期间他的学习路可谓是一路问过来的,记得从最开始他在群里反复问老师到后面可以帮助老师解决大家的问题。也许我们经常会说自己没时间学习,暂时不考虑没规划之类。但如果真正想去做我相信一定有时间的。


这几个月以来,大家都能在我的朋友圈看到我在学Python的东西,现在基础学得差不多了。所以我准备接下来慢慢做一些小案例,跟大家一起分享学习。

因为会Python操作和会用Python进行数据分析,完全是两回事。要学会用工具进行分析,就必须多练习,多训练。

在做案例前,我还想回答大家一个疑问,就是excel做数据分析可以实现Python一样的效果,那用Python的意义在哪呢?


经过这段时间学习理解,我的回答是:

第一,在处理海量数据时,Python效率远高于excel。一般几万行的数据以上,excel基本就无能为力,很卡了。但是Python依然可以行云流水,效率高几十倍上百倍都有可能。

第二,Python的自动化水平非常高。你也许觉得excel的VBA一样可以自动化对不对?但是VBA有个致命弱点是,它只能基于excel内部进行自动化,其他方面就没办法了。比如你要对硬盘某些储存几百个的文件名称批量修改,VBA没办法,但Python实现起来很简单。

第三,Python是可以做算法模型的。Python语言可以让你搞懂一些最基础的算法原理,然后根据这些搭建一些算法模型,并通过matplotlib模块表现出来。.

下面我想通过一个咖啡公司的数据做一个简单的数据分析案例,从导入数据到最后形成图表,过一下整个流程,让大家知道,Python数据分析到底是怎么一回事。



1

准备数据


1、导入python数据分析模块三剑客:pandas\matplotlib\numpy2、用read_excel()方法导入数据源

输出结果截图如下(部分):

可以看到有这些数据:订单日期、市场类别、区域、产品类别、产品名称、预计销售成本、预计毛利、预计利润、预计销售额、销售成本、存货、毛利、利润额、销售额等等。



2

数据清洗


1、缺失值的处理

可以看到,这份数据很干净,没有空值。缺失值查询也可以用info()方法。

如果数据中有缺失值,我们可以用dropna()方法进行删除,或者用fillna()进行填充。



2、重复值处理很多数据都是有重复值的,这个在数据分析前必须删除掉,不然影响结果的准确度,清洗方法为drop_duplicates()

结果显示,无重复。完了,我找的这个数据可能是别人已经清洗过的了,可能不需要我清洗了,打扰了。



3

数据分析


1、数据整体情况把握,用shape方法查看维度。

结果显示,这个数据有4248行,14列。


2、用describe()方法进行描述性分析

从这个步骤,想必你已经看出Python的强大之处了,一个小方法,瞬间可以查看各列数据的计数、平均数、极值、方差、4分位数等等。当然,如果你这样写:describe(include='all'),数据会更加详细。



3、排序分析比如我想看每个产品利润额从高到低的分析。

sort_values(by='利润额')表示按利润额排序,ascending=False表示降序排序,head()数据太大了,所以我用这个函数默认取前5个数据。



4、数据分组(跟SQL中的分组一样)比如,我想看不同产品类别的利润额大小。

我用groupby()查看了利润额和销售额,根据肉眼,你一下估计看不出利润额哪个大对不对?那可以根据上面我介绍的排序知识来排序。

超快吧,要比excel方便对不对。



5、根据条件查询数据比如,我要看看哪些产品有负利润。

发现普洱茶的部分产品很多是亏本的。也许你想,如果我只想查询清凉茶的负利润产品呢?也可以的,在条件查询中多加个条件就好了。如图:

看到这里,你应该可以根据自己的分析需求运用条件格式畅所欲为了吧。是不是比excel嵌套会好用一点呢,关键excel如果碰到大数据嵌套会,人会很崩溃。比如我有次看到同事为了匹配数据一跑数据就是一两个小时。这在Python里是分分钟的事。



6、条件复杂一点分析(透视表)比如,我要看看不同区域清凉茶的利润额和销售额的求和、平均值、极值呢?

这就需要用到上图展示中的pivot_table(),这就是透视表功能。这个功能可以让你实现各种复杂分析。但需要熟练。



7、增加一列,算利润率比如我要算利润率,那么我就得用利润额除以销售额,再换成百分比对不对?如图:

先算出利润率,这时候是一个小数,那么我们得想办法把小数转化为百分数,而且需要添加到表格里去。这时候就要用到lambda匿名函数了、格式化函数format、以及聚合函数apply了。

到此为止,我把我们日常数据分析的基本流程和分析方法演示了一遍了。接下来开始最后一个模块,得快点说完了,现在凌晨1点,明天还得上班。


4

数据可视化


Python的图表功能也很强大,可以有各种组合形式,然后图表如果设置格式的话,可以制作得很专业且清晰,因此很多商业图表制图,都会借助Python。下面我只会简单展示,因为复杂的东西我目前也没办法随心所欲做出来,虽然我知道方法。


1、各产品种类利润额的图


2、查看各种产品的利润额分布在哪些区间

这是一个简单箱式图能看出极值、特殊值、4分位值,中位数等等。



3、雷达图这个就我随便画一个了,没时间根据这个数据来做了,现在凌晨1点半,要睡了。



以上,就是东哥整理出来的用Python进行数据分析的全过程。

如果大家熟练了,就可以在这个基础上玩出各种花样了。我将在接下来的时间里,继续做一些分析案例,希望能分享一些比较容易上手,又能符合数据分析行业实际工作的东西出来。

大家有更好的方法和案例,也可以一起共享,共同学习进步。

备注:Python学习并不难,但是需要坚持,我正式学是从今年3月23日开始的,到现在不到5个月。当然Python有很多方向,比如web开发、数据分析与科学计算、爬虫、数据挖掘与机器学习、算法人工智能等等,我只是选择了数据分析方向。


END

文章作者:欧阳山东 @我最帅 小数点python数据分析第二期学员


更多有关python数据分析的干货,欢迎关注我们的微信公众号:POINT小数点数据

编辑于 2019-09-09

文章被以下专栏收录