要说最近几年最火的程序语言,非Python莫属。结合自己的学习经验来说,我认为它确实是贴地气-实用-强大的一门语言。正是如此,在数据分析领域想必大家多多少少都看到了Python 取代Excel的言论。
那么本次咱们就用Python对优衣库的那什么门分析一下?
搞错了,重来!
是对优衣库销售数据分析一波,看看python数据分析到底有啥千秋。
简单介绍一下优衣库:优衣库(英文名称:UNIQLO,日文假名发音:ユニクロ),为日本迅销公司的核心品牌,建立于1984年,当年是一家销售西服的小服装店,现已成为国际知名服装品牌。优衣库现任董事长兼总经理柳井正在日本首次引进了大卖场式的服装销售方式,通过独特的商品策划、开发和销售体系来实现店铺运作的低成本化,由此引发了优衣库的热卖潮。
下面步入正题,先来看一下整个的分析结构,这也是数据分析的一般流程:
一、业务问题
以业务为导向,让我们带着问题去分析,而不是为分析而分析
- 问题一:整体销售情况随着时间的变化是怎样的?
- 问题二:不同产品的销售情况是怎样的?
- 问题三:顾客偏爱哪一种购买方式?
4.问题四:销售额和产品成本之间的关系怎么样?
二、数据概况分析
1.首先是调包,pandas和numpy用于数据处理,matplotlib和seaborn用于可视化绘图,最后一行则是数据读取导入
2.head()函数查看数据前五行,预览一下数据全貌,一共13个字段,这里发现对后续分析无意义的变量store_id
http://3.info()查看空值、数据类型,可以看到各字段都没有空值,1个浮点6个整数型6个类别型变量,这里如果发现变量类型不对则要进行修改
4.describe()描述性数据统计,可以看到有最大值、最小值、平均值、四分位数等,从这里我们看到revenue的最大值有点离谱了,为异常值,会在接下来的数据清洗阶段处理掉它
5.is null()查看是否有缺失值,这次拿到的数据居然没有一个缺失值,下个项目再展示如何填充缺失值了,一般有空值填充,平均值填充等等
三、数据清洗整理
刚刚上面的数据概况分析中我们已经发现了有问题的数据,下面直接对它进行处理。
1.删除无意义变量store_id,因为它是在第一列,输入axis=1就可以删除它啦。
2.删除revenue异常值
这里我们需要先缺异常值范围之后再进行删除,因此我们先将revenue销售额进行分组,再通过grouypby将不同组对应的值描述出来。这时候我们可以很清晰的看到超过2000的数据量其实已经很少了(51+9+2=62),那我们这里直接删掉就好,既去除了异常值又不会对整个分析产生影响。
删除代码如下,这里再用describe看一下数据分布就正常很多了
3.删除性别和年龄中的Unknow,这里是我在后续可视化中发现的,提到此处来处理了。通过describe和count计数,可以看到性别和年龄中分别有118和137个Unknow。
这里我们先转换为nan再进行删除,因为这里Unkonw占比不高,删掉不影响分析结果,不删掉会影响后续可视化效果
4.创建衍生变量profit(利润),这里我是根据业务分析需求来提前创建好。总利润=(价格-成本)*数量
到这里数据已经清洗和处理完毕了
四、数据可视化及业务解读
- 问题一:整体销售情况随着时间的变化是怎样的?
思路:这里可以使用刚创建的利润衍生变量及销售额和销量3个维度,来对比分析工作日和周末的销售差异
从利润来看,工作日利润高于周末
从销售额来看,工作日高于周末
从销量来看,工作日还是高于周末
但是!!其实上面图形展示给我们的并不是真实的情况,以个人的生活经验来说,周末才是人多才是销量高才对。所以其实我们忽略了一个重要的信息:工作日是五天,周末只有两天。OK,那我们用总量再来平均一下就知道真实情况了:
利润比
销售额比
销量比
业务解读:虽然从总销售额来看工作日高于周末,但周末其他各项指标基本吊打工作日,从日均销售和日均客流来看,周末几乎是工作日的两倍,客单价也要高1元。所以加强周末的销售工作,多搞搞活动还是很必要的。
2.问题二:不同产品的销售情况是怎样的?
思路:同样使用柱状图,我从产品的销售金额和利润两个方面来分析
从总利润来看,可以看出T恤、配件、当季新品利润较高,销售重心应集中在这几类产品。
从平均利润来看,可以看出配件、毛衣、裙子平均利润较高,这里通过用总利润和平均利润进行对比,发现TOP商品有了一些变化,除了配件,这里的毛衣之平均利润高是因为销量不高,而T恤总利润高而平均利润不高则是因为它是薄利多销产品。
从总销售金额来看,可以看出T恤、当季新品和配件较高,销售重心应集中在这几类产品。
从平均销售金额来看,可以看出配件、毛衣、裙子较高,跟平均利润排列基本一致,这几样不仅平均卖的多,而且利润也不错。
3.问题三:顾客偏爱哪一种购买方式?
思路:本次数据中,购买方式也就线上和线上,我们这里通过性别、年龄与城市偏好的渠道来看
从性别角度来看:
可以看出不管是男性还是女性,都以线下购买方式为主,且顾客多为女性。因此优衣库应着重巩固线下渠道,努力拓展线上渠道,同时也要更加关注女性的服装偏好
从年龄角度来看:
可以看出不管是何种年龄段,都以线下购买方式为主,且顾客年龄大多集中在20-40岁之间:
建议优衣库服装设计应偏向在年轻群体
这里从图中可以看出有不少中年人也热衷于优衣库,以我的日常经验来看,我觉得很可能是你们的老爸老爸帮你选衣服呢。其次优衣库线上用户整体体量较少,没有明显年龄层次差距:
优衣库应加大线上商城的搭建和运营,以实现线下线上两开花的目标。
从城市角度来看:
可以看出各城市销售情况依然也是以线下为主,但是个别城市线上购买量超过线下购买量,如武汉,广州等。
另外一个就是有几个城市的线下数据为空,作为一名数据分析师这时候应该要想,数据是怎么来的,是否可靠?这里可能需要跟业务部门去沟通证实一下。
这里我们假设数据没问题,那说明优衣库线上业务在深圳、杭州、南京、北京、成都这几个城市都有很大的拓展空间。
问题四:销售额和产品成本之间的关系怎么样?
思路:变量相关性问题,使用热力图或散点图来分析
先来看看成本和销售额之间的相关性系数,可以看到是0.223847,也就是正相关,可以理解为成本越高,销售额约高。
用热图看看关系强弱
用散点图查看销售额和成本的分布
业务解读:看图,这个问题不多说,结论留给读者来帮我回答吧,毕竟只是探索性分析。
到这里这次优衣库分析终于结束,敲的我头皮发麻。总的来说:
此次分析基本将数据分析大致流程都走了一遍,python数据处理及可视化基础代码本文也覆盖一二,并且对业务问题进行了多角度的剖析。但文章也有部分缺陷,如问题一平均值柱状图排序代码失效,笔者也未能搞明白,这里如果有大神看到麻烦指点一二。
下篇继续python数据分析,但是会更加深入,加油!