Python家电订单数据分析报告

1. 项目背景

1.1订单数据准备

数据源:某平台提供的 2020年5月25日大家电-家用电器-冰箱 抽样数据(可供学习)

数据量:70k+

订单数据介绍

2. 订单数据的分析思路

  对于订单数据,在业务中最常见的是使用可视化报表来监测订单关键性指标的变化,并在一定维度上进行下钻。

3. 结论

从宏观角度,把握当天订单状况。订单总数中,有71.15%是未取消订单,在未取消订单中,有效订单(有效订单衡量标准为订单有效标志为1且实际支付金额>0)

在订单价格分布中,一天中近80%的订单支付金额都小于3000元。

在订单的微观分析中,根据以上订单分析思路,将订单分为四个维度去考虑,时间维度,地区维度,品牌维度,店铺维度。

1)   时间维度

结论1:0时刻(表示客户在0:00-1:00下单)是订单数量和客单价最高的时间段,有效订单量4024单,超过其他时段一倍以上;

结论2:10:00和20:00为一天中的小高峰期,订单数量2000+;

结论3: 订单量较高的时段可能因为在此期间有优惠促销活动导致;

2)地域维度

结论4: 广东,北京,上海,四川,江苏为京东家电(冰箱)类的头部市场;

结论5: 广东为全国省份中订单总量最多的地区;

结论6: 上海地区人均购买力更强;

结论7: 上海地区具有较强的品牌偏好性

3) 品牌维度

结论8: 海尔、容声、美的、康佳、至高为冰箱产品中的头部品牌,其中海尔占据绝大部分市场份额;

3) 品牌维度

结论8: 海尔、容声、美的、康佳、至高为冰箱产品中的头部品牌,其中海尔占据绝大部分市场份额;

4)   店铺维度

结论9: 非自营店铺订单数量和客单价大幅度低于自营店铺

结论10:原因可能是非自营店铺主要集中于单价很低的品牌,缺少单价较高的品牌

4. 数据处理

4.1    分析工具

开发语言:Python(数据分析:Numpy/Pandas 数据可视化:Matplotlib)

开发环境:Jupternotebook


4.2    数据导入

       为方便理解,把英文字段改为中文。

4.3    数据清洗

该数据清洗分为三个部分,缺失值处理、数据逻辑错误、内容格式的一致性方面。

第一,缺失值处理

用户城市和省份信息有部分缺失,分析其原因是部分用户隐藏了IP地址,不影响分析。

部分订单的订单时间是空值,分析其原因可能是订单尚未支付,可以将其赋特殊值比如-1或者不做任何处理,不影响分析。

第二,数据逻辑错误

有用户城市ID为-1。优惠前冰箱最低价格为300,数据中存在大量低价订单,其中绝大部分是保修,返现等无价值订单,一小部分是异常订单,可以忽略。

第三,格式内容一致性

此数据一致性较好,不需要特殊处理。

df.info()

查看整体数据索引,在支付时间,订单有效标志,订单取消标注均有缺失值,需要进行缺失值处理,并且所有数据都是object,故需要对id,time等进行数据类型转化。

· 数据类型转换

对数据类型进行转换,标注类数据只有0,1,故更改为整型(int型),对价格金额类的数据更改为浮点型(float型),对于时间日期类更改为datatime

· 数据缺失值处理

df.isnull().sum().sort_values(ascending=False)

查看缺失的数据,并按缺失数据多少进行排序,用户所在城市编号有38190个缺失值,用户所在省份编号有38033个缺失值,支付时间有23271个缺失值

·  填充缺失值

·  异常值处理

定义异常值处理规则:冰箱的优惠前单价最低为300元,低于该价格的订单设定为异常。

 通过以上分析可知,共有15133条冰箱优惠前价格大于300的异常数据,剔除异常值。

· 重复值处理

df.订单号.duplicated() 语句查看订单号是否有重复值

发现订单号有重复现象(检验为true),故需要对重复的订单号进行处理。根据京东订单规则,若订单号重复,保留第一个重复值。

5. 订单数据的宏观分析

5.1       有效订单率

计算取消订单数,计算订单取消标志为1的订单数量为取消订单数,17782

计算订单数,计算总订单数为61536

通过绘制饼图,可知有效订单占总订单的比率为71.10%

有效订单筛选条件,订单有效标志=1,订单取消标志=0,优惠前单价不等于0

已支付的订单占总体订单的85%

5.2    订单价格分布

通过订单价格分布可得知80%的订单都在3000以下。

通过生成直方图函数,hist,bin_edges分别代表各个区间统计数值和区间端点,hist_sum表示累积订单量,hist_per为计算出的累积百分比。

画出折线图


6. 订单数据的微观分析

6.1 时间维度

通过对时间维度进行深挖,我们发现0时刻是订单数量最多的时间,在这个小时内我们有超过4000个订单,远远超过其他任何时间的订单数。

6.1.1  有效订单量

除了0时刻外,上午十点和晚上八点也是订单高峰期,考虑到0时订单量可能是因为异常值出现,如某几个顾客下了很多的订单,基于以上考虑,这里可以对人均有效订单量做一个分析。

从直方图中,可明显获知0时刻有效订单数4000+,是全天最高的时刻,除此之外,10:00与20:00订单量是一天中的小高峰期。

人均有效订单量折线图,从数据来看,0时刻的人均有效订单量的确偏高,但低于峰值(1时刻的1.08)和11时刻的人均有效订单量,这说明了0时刻并非因为某个异常高的单人订单量造成订单量最高的现象。

6.1.2  客单价&平均订单价

客单价与平均订单价的定义如下:

客单价=销售额/顾客数

平均订单价=销售额/订单数

同样应用groupby与agg订单实际支付价格按照时间段分类,并取sum进行求和,得到每一个时间段总销售额,再根据公式求得客单价和平均订单价,并画出曲线图。

6.1.3  不同时段订单价格对比

从时间维度来对订单进行拆分,把0时刻订单价格累计分布图和20时刻(除0时刻以外订单数量最多的时间)价格累计分布来进行对比。

0时刻:约25%的用户订单在2000元以下

20时刻:约75%的用户订单在2000元以下

说明0时的用户并不只是有一小部分订单价格更高,而是大部分下单用户都具有较高的客单价。

避免重复操作,这里定义价格累计分布折线图绘制函数,后续计算各个时刻可直接调用函数

分别调用函数,得到0时刻与20时刻订单价格累计分布折线图。

6.1.4   优惠订单占比

6.2    地域维度

6.2.1  不同地域订单量对比

计算各个用户省份编号的订单总量,删掉not given即没有省份信息的数据,并更改用户所在省份编号字段为整型。

下一步读取城市等级数据表,同样设置数据类型,由于city_level存储了各个省份城市的信息,但我们分析时只需要统计到省份即可,所以这里需要简化,每一个省份留一个数据即可。

删除不必要的信息,只保留用户所在省份编号和省份名称两列数据,且按照城市编号大小顺序排序,由于下一步要通过pd.merge()对表进行拼接,所以需要将该表省份字段provinve_id更改为“用户所在省份编号”,与order_area进行匹配。

通过pd.merge()对表进行拼接,这时省份名称和订单数据就有相对应关系了。

与前面画图方法相同,将各个地区订单量进行可视化,如图所示,订单量排在前三名的城市为广东,北京,江苏。其中广东和北京的日订单量都在1000+。。

当然,也可以通过绘制饼图来查看每一个省份订单量占比,广东订单量约占全部订单的20.55%,北京约占13.29%。

6.2.2  客单价&平均订单价

此外,之前我们在时间维度考虑客单价和平均订单价,在地域维度也可采用同样的方式进行分析。这里就不详细赘述,代码如图。

6.3    品牌维度

把地区维度和品牌维度结合起来,可以让我们更清楚的看到不同地区品牌偏好性和市场渗透率。因为不同品牌有不同定价和营销策略,通过不同地区用户品牌偏好,我们也可以在产品定价和营销策略上发现洞察。

6.3.1  头部品牌

第一步同样应用groupby按照品牌名称进行分组,并统计支付价格总量和商品数量总量(sum),按照支付价格有多到少的顺序进行排序,代码如图。

从品牌整体销售情况可以得知,海尔,容声,西门子,美的,海信为销量前五大品牌。

6.3.2  头部省份四个品牌市场渗透率

品牌渗透率:该品牌订单数/所有品牌总订单数

这里选取刚刚地域分析中有效订单量排在前五的五个省份,北京、上海、江苏、广东、四川,首先用海尔品牌进行分析,统计出海尔品牌在这几个城市编号的商品数量和实际支付价格。

根据上述公式,计算渗透率还需要所有品牌的订单数,所以采用merge将两个df连接在一起,并计算渗透率。其他品牌操作一致,所以这里定义一个计算渗透率的函数,方便后续调用。

通过定义不同颜色来区分不同的品牌,黄色代表海尔,红色代表容声,蓝色代表西门子,绿色代表美的。由不同地域的品牌分布可知,上海用户具有较强的品牌偏好性。

6.3.3  各个品牌单价


 

6.4    店铺维度

首先从自营店铺与非自营店铺有效订单量方面来进行宏观分析,其代码逻辑与订单数据宏观分析中的有效订单率分析基本一致。

如上图所示,自营店铺与非自营店铺的有效订单比约为7:3,自营店铺的有效订单数占总订单数的主要部分。

除了订单数量差异之外,非自营店铺的客单价也要远远低于自营的店铺。

接下来,从品牌角度来进行分析,并分别将自营店铺与非自营店铺的订单量前五的品牌绘制饼图进行对比。

由以上饼图可知,在自营店铺中,头部品牌是海尔、容声、西门子、海信、美的。在非自营店铺中,头部品牌是志高、海尔、奥克斯、现代、美的(按日订单总量排序),不难发现,非自营订单主要集中于价格较低的品牌,极大可能是非自营店铺订单数量和客单价均大幅低于自营店铺的主要原因。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,110评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,443评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,474评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,881评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,902评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,698评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,418评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,332评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,796评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,968评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,110评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,792评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,455评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,003评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,130评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,348评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,047评论 2 355