淘宝婴儿用品销售数据销量分析之报告

一、分析背景与目的

背景

拿到的数据是阿里天池里关于淘宝和天猫用户购买婴儿用品的真实数据,包括用户购买婴儿用品的交易记录以及婴儿的基本信息。原始的数据集应该有超过900万条,但目前只能采集到它的样本,其中交易记录数据包含29971条,婴儿信息数据包括953条。交易记录数据是从2012年7月2日-2015年2月5日,2年半左右的时间跨度。数据维度的详细介绍如下:

交易记录数据,包含7个字段:

  • user_id: 用户编号
  • auction_id: 购买行为编号
  • cat_id:商品编号
  • cat1:商品属于的类别
  • property:商品具有的属性
  • buy_mount:购买数量
  • day:购买时间

婴儿信息数据,包含3个字段:

  • user_id:用户编号
  • birthday:婴儿出生日期
  • gender:婴儿性别(0 男性;1 女性)

目的

目的是通过这个数据集,分析一些实际的业务问题。比如:

  • 最受用户欢迎的产品是哪些?
  • 一年中,用户更喜欢在什么月份购买商品?
  • 哪个品牌的婴儿用品更受用户喜爱?
  • 对于不同品牌商品,用户购买时间和频率是什么样的?
  • 不同品牌的用户画像如何?…

具体地,拟通过分析解决以下几个业务问题:

  1. 最畅销的10个商品
  2. 总的月均购买次数,各个月的平均购买次数,不同年份的月均购买次数
  3. 每类商品的月均购买次数,月均销量
  4. 每类商品的月均销量趋势,月均购买次数趋势
  5. 每类商品的用户画像,具体表现为性别和年龄段的分布情况

二、分析思路与分析过程

数据清洗

首先对数据集进行清洗,包括:

  1. 选择子集,对于要分析的业务指标,不需要用到交易记录数据中的auction_id,property字段,选择将这两个字段删除。
  2. 列名规范,为了便于查看和理解,将所有列名改为中文名。
  3. 缺失值查看,两个数据集都不存在缺失字段。
  4. 数据类型转换,查看数据类型,发现都是int64类型。这对于销售时间和出生日期字段来说,并不合理,所以将这两个字段转换为日期类型。
  5. 数据排序,为了便于查看时间跨度,分别按照销售时间和出生日期进行升序排序,并将排序后的索引值重新改为0-N的顺序。
  6. 异常值处理, 查看婴儿性别字段,发现除了0(男),1(女)之外,还存在2的情况,这应该是用户不愿意透露婴儿的性别信息,这部分值只有26个,删除这部分数据后,将0和1分别替换成男和女。

总体分析思路

思路

具体分析过程

指标一
  1. 根据商品编号进行分组,统计不同商品的销量
  2. 根据销量排序找出销量前10的商品

按照分析思路计算并绘制柱状图,得到结果如下:
1

可以看到这段时间内销量第一的是商品编号为50018831的商品,其销量高达12657件;销量第二的商品50011993仅卖出3609件,两者差距非常大,前者是后者的3.5倍多。此外,除去销量第一的商品外,剩下的9个商品,销量差别不大,对这些商品商家可以多进行广告投放的营销活动。

指标二

指标二包含了三个小指标,以月为维度分析整体月均购买次数,各个月的平均购买次数,以及以年为维度分析月均购买次数;
整体月均购买次数,这个指标是一个值,指的是在2年半的时间跨度里平均每个月的购买次数。由总的消费次数除以总的月份数得到,在计算总消费次数时注意同一天内,同一个用户发生的所有消费都算作一次消费,所以需要根据用户编号和销售时间两个字段作去重处理。
由于整体月均购买次数只是一个具体的数字,不能反映出用户的购物习惯,为了分析用户更喜欢在哪些月份消费,进一步计算用户在不同月份的平均购买次数。计算方式为各个月的总购买次数除以月份出现的年份数,注意不同月份出现的年份数是不一样的,因为采集的数据是从2012年的7月到2015年的2月,所以有的月份出现了3次有的月份只出现了2次。
将整体月均购买次数、各月的平均购买次数可视化,结果如图所示:
2-1

发现在5、11、12这三个月的月均购买次数远超过整体月均购买次数,说明用户更喜爱在这三个时间段购买婴儿用品,那么商家在这些时段可备好货源,保持营销。2、7、8这三个月,用户的购买力度不强,商家可以着重在这些时段进行更多的产品推广或者促销活动。

再通过以年为维度对比不同年份的月均购买次数,观察随着时间的推移,用户的购买力度的变化情况。计算方式为一年的总购买次数除以对应的月份数,得到结果如下:
2-2

2012年至2014年,月均购买次数呈上升趋势,2014年到达高峰,2015年又降下来。对于2014年的购买高峰,如果没有商家方的内部原因,那么也许是2014年婴儿出生率有提高,或者是其他外部影响因素。

指标三

接下来开始细分到每个商品种类,分析每个类别中商品的月均购买次数和商品的月均销量。各类商品的月均销量由各类商品的销售总量除以总的月份数得到,先按商品种类字段分组,求出各类别商品的销售总量,月份数在指标一中已计算,根据公式得到各类商品的月均销量;同理可计算各类商品的月均购买次数。
最终绘制成柱状图,进行对比分析:
3

从上图中看到,总共6个商品种类,只有种类122650008它的销量和购买次数基本持平;剩下的5类都是销量大于购买次数,即用户购买时会一次买多件。购买次数最多的种类是50008168,销售数量最多的却是种类28,该种类的销量是其购买次数的4倍多,说明用户每次购买该种类的婴儿用品都会囤货。
此外,商品种类50014815也比较特别,购买次数排第3位,但是它的销量超过了购买次数最多的50008168。所以商品种类2850014815是6种商品里最畅销的。

对于那些购买次数多,但销量不是特别高的商品种类,说明用户粘性强,那么商家可以适当做一些广告,刺激用户的消费,提高总销量;
对于购买次数少,但是热销的商品种类,商家可进行引流和促销。
下面通过指标四来分析每类商品具体是在哪些月份更畅销。

指标四

为了进一步分析不同类的商品究竟在哪些月份更畅销,将每种商品种类在一年12个月中的月均购买次数和月均销量分别可视化出来。计算这两个小指标时,首先按商品种类和销售月份分组得到月总销量(月总购买次数),然后统计月总销量(月总购买次数)是由几个年份组成,最后计算月均销量(月均购买次数)。

4-1

从这幅图可以看到,商品种类50008168(红色)的月均购买次数最多,与指标三吻合;并且可以很清楚看到这个种类的商品在不同月份的平均购买次数波动很大,在2、7月是低谷,而在5、11月是高峰,远远多于其他种类;观察下边的图,发现这个这个种类的商品在9月份销量更高,对于购买次数处于高峰的5、11月销量反而不算多。其他5类商品的平均购买次数趋势相对平稳,低谷都出现在2月份,高峰都出现在11月份。

4-2

从这幅图可以看到,所有种类的商品的销量低谷都在2月,与上图结果一致;商品种类28(橙色)是销量最多的,它分别在5、7、12月出现了销售高峰;而另一商品种类50014815(紫色)11月份的销量激增,这说明用户特别喜爱在双十一活动时对它进行囤货。其余3类商品,相对于平均购买次数,它们的平均销量趋势非常平稳。

2月份一般都是春节期间,所以用户的消费欲望会有所减缓;对于不同种类商品,用户的囤货行为会出现在不同的月份,商家可以提前做好预估,并在高峰来临前做进一步的宣传;至于购买次数和购买量相对平缓的月份,商家可通过广告、红包福利等措施刺激用户消费。

指标五

最后对各类商品的用户画像进行分析。需要先将交易数据表和婴儿信息数据表合并,并且以婴儿信息数据表为主。先分析购买每类商品的婴儿性别分布情况,根据商品种类和性别字段对数据进行分组,统计每种商品的用户性别分布,计算每类商品的男女用户比例,最后可视化:
5-1

除了商品种类50022520对女孩的销售比例高于男孩外,其余5类商品的用户对象都是男孩居多,尤其是种类3850014815的商品,对男孩的销售比例占据了70%以上。

再分析购买每类商品的婴儿年龄段分布情况。先计算婴儿的年龄,并将年龄分成0岁、1岁、2岁、3岁、4岁、5岁、5岁以上7个阶段,然后统计不同类商品在不同年龄段的销售情况,计算每类商品的用户年龄段比例,最后可视化:
5-2

种类为50022520(灰棕色)的商品,其用户百分之80%以上都是0岁的婴儿,即还未出生,父母就为其购买了相关用品。种类为50014815(紫色)的商品,其用户大部分由0岁和1岁两个年龄段组成,占据百分之70%以上;种类38(绿色)的商品,其用户大部分由1岁和2岁两个年龄段组成,占据80%左右;种类122650008(蓝色)的商品,其用户除了1岁和2岁的,还有3岁的孩子。剩余两个种类的商品,都是随着孩子年龄增大,销售比例逐渐降低。
通过对不同种类商品的用户进行画像分析,进行精准营销。对不同年龄和不同性别的孩子,推销不同种类的商品。

四、总结

以上分析涉及了用户消费趋势分析、商品对比分析和用户画像分析。这些分析都是小数据量下的关于业务指标的描述性统计分析,目的是为精准营销。数据中未包含用户的行为类型,所以没有进行PV、DAU、留存与转化等网站运营指标的分析。利用用户购买的商品信息来预测用户年龄段,以及利用用户信息预测购买何种商品种类的分析,可以参见前一篇文章,这里不给出预测结果。本案例的目的是通过分析现实场景数据,锻炼业务思维,加强用Python处理数据和进行可视化的代码能力,在以后有更多业务经验后再做出更深入的分析。

-------------完-------------