数据分析项目:母婴商品销量分析

本篇文章转载自数据分析4_母婴商品销量分析,本人是对其数据分析进行复现,当做数据分析的练习项目,并对复现项目时遇到的一些问题进行说明。

项目介绍

项目背景

根据PEST框架,从四个角度简要分析:

  • 政策Politics:国家发展改革委2013年5月28日表示,13个部门将出台系列政策措施,从可信交易、移动支付、网络电子发票、商贸流通和物流配送共5个方面支持电子商务发展,有利于促进在线母婴商品市场快速发展。
  • 经济Economy:随着国内经济的稳定增长,2015年我国城镇居民可支配收入增长到31195元, 同期农村居民可支配收入增长到11422元。不断提高的人均可支配收入将提升家庭的消费意愿,2015年中国母婴行业市场规模有望达到2万亿。
  • 社会Society:对于一线城市居民来说,随时随地通过手机、电脑等电子网络设备足不出门即可完成购物的新型消费方式更能适应他们紧凑的生活节奏;而对于二三线城市以及农村居民,物流上门配送带来的便捷也使得网购更具吸引力。
  • 技术Technology:4G网络的普及、手机和ipad等移动设备快速升级迭代更新、网络在线支付系统的发展,为电子商务迅速崛起注入强大的动力。

分析目的

  1. 帮助在线商家针对不同的时间节点和场景做出不同的销售和运营管理策略,帮助商家提高销量和营业额、减少经营成本。
  2. 根据孩子的信息(年龄、性别等)来预测用户会购买什么样的商品。(暂未完成)
    问题拆解
    在这里插入图片描述

数据概览

Ali_Mum_Baby是一个包含超过900万儿童信息(生日和性别)的数据集,由消费者提供,他们共享这些信息是为了获得更好的推荐或搜索结果。
本次数据共有两个csv。
婴儿信息表
在这里插入图片描述
交易记录表
在这里插入图片描述

数据准备

导入数据

baby = pd.read_csv("./sam_tianchi_mum_baby.csv")
trade =pd.read_csv("./sam_tianchi_mum_baby_trade_history.csv")

查看数据

baby

baby.head()

在这里插入图片描述

baby.shape
(953, 3)
baby.info()

在这里插入图片描述

trade

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
小结:bady数据行数953,列数3。其中无缺失数据,数据类型均为整数型。trade数据也进行相同的处理,发现trade数据行数29971,列数7.其中无缺失数据,数据类型只有property为object,其余均为int。

数据清洗

trade

  1. 查看有无缺失值异常值,并进行处理。
  2. 数据集中的property全是数字,需要有对应的字典才能知道对应什么属性,这边先删除。
  3. day改成日期形式。
  • 对销量进行四分位差的异常值检测,发现存在异常值,其上下界为[0,195]但其所占比例不大,考虑删除。
    在这里插入图片描述
# 数据处理
trade['day']=pd.to_datetime(trade['day'].astype('str'),errors='coerce')

trade.drop(['property'],axis=1,inplace=True)
trade=trade.loc[(trade['buy_mount']<=195)&(trade['buy_mount']>=0),:]
  • 经过清洗后的数据保留下29942行,6列。统计时间是2012/7/2-2015/2/5。整个数据集中共6个商品大类,662个商品分类,28394件商品,29915名用户。
trade.shape
(29942, 6)
**********************************************************
trade.day.describe()

count                   29942
unique                    949
top       2014-11-11 00:00:00
freq                      454
first     2012-07-02 00:00:00
last      2015-02-05 00:00:00
Name: day, dtype: object
**********************************************************
count_cat1 = trade.cat1.nunique()
count_cat = trade.cat_id.nunique()
count_item = trade.auction_id.nunique()
sales_volume = trade.buy_mount.sum()
count_user = trade.user_id.nunique()
print("商品类目数:",count_cat1)
print("商品类别数:",count_cat)
print("商品数:",count_item)
print("总销售量:",sales_volume)
print("用户数:",count_user)

商品类目数: 6
商品类别数: 662
商品数: 28394
总销售量: 49973
用户数: 29915

这里只有2013年和2014年的数据是全年的,而2012年的只有3/4季度,2015年只有1、2月的数据,因此,在后续的分析中,有一些时间的数据是用不上的。

在这里插入图片描述
在这里插入图片描述

bady

  1. 查看异常数据,并将其清除。
  2. birthday改成日期形式。
baby['gender'].value_counts()

0    489
1    438
2     26
Name: gender, dtype: int64
**********************************************************
baby['birthday']=pd.to_datetime(baby['birthday'].astype('str'),errors='coerce')

**********************************************************
baby['birthday'].dt.year.value_counts().sort_index()

1984      1
2002      1
2003      3
2004      4
2005      3
2006     10
2007     20
2008     36
2009     51
2010     84
2011    146
2012    183
2013    219
2014    170
2015     22
Name: birthday, dtype: int64
**********************************************************
baby=baby.loc[baby['gender'] != 2,:]
baby=baby.loc[baby['birthday'].dt.year >1984,:]

这是两年多经过删减的数据,由于缺少部分数据,所以我们只能根据这份数据集进行分析。主要是思路。

数据分析

整体市场情况

在这里插入图片描述

2017/7-2015/2期间总销量是49973件,从上图我们可以看出淘宝和天猫平台母婴商品市场销量整体呈现上升趋势,但是波动较大。

在这里插入图片描述

  1. 2015年由于数据缺失,所以不能反应2015年第一季度的真实销量情况
  2. 每年第一季度的销售额都会呈现一定幅度的下跌。每年第四季度的销量都会呈现大幅度上升。

在这里插入图片描述

  1. 2013年和2014年的第一季度销量都有所下滑,主要聚集在1、2月。
  2. 每年的5月、11月都会出现不同程度的销量上涨。

第一季度销量下降原因

假设第一季度下降原因是和春节有关。
这里可以看到2013年2月2-11号销量有明显下降;这里可以看到2014年1月20-2月4号销量有明显下降.
在这里插入图片描述

  • 2013/2/1-2013/2/15处于销量谷底,2013年春节假期:2013/2/9-2013/2/15
  • 2014/1/26-2014/2/4处于销售谷底,2014年春节假期:2014/1/31-2014/2/6

2015年春节假期是2015/2/18-2015/2/24,数据集统计时间只到2015/2/5,所以就暂不分析2015年第一季度情况

临近春节可能存在部分企业提早放假,快递停运,销售低谷时段与春节假期基本吻合,假期结束后购买量和用户量上升,所以可以认为第一季度销量下降是由春节假期造成的。

第四季度销量上涨原因

假设和双十一双十二活动有关。
在这里插入图片描述

  1. 可以很明显看出2013年和2014年双十一及双十二当天的销量和销售额都激增。
  2. 每年的双十一活动用户量和销量都比往年多,用户量增长为75%-80%。
    双十一的用户增长为76.65%,销量增长152.12%;双十二的用户增长为55.63%,销量增长52.20%。

所以可以认为每年第四季度的销量上涨和双十一双十二活动有很大的关系。

复购率

当月复购率的变化趋势

在这里插入图片描述

各类商品复购率趋势

在这里插入图片描述
各月产品复购率极低。各大类的复购率也极低,均未有超过1%,其中大类38的复购率最高为0.17%。考虑到用户单次购买量大多是一件,且复购率低,说明用户对单一商品的回购欲望极低,商家应该从产品角度进行考虑,例如产品质量及购物体验等。

  • 这里说一下关于复购率的计算方式
  1. 计算每人的购买次数(以天为单位):{ INCLUDE [用户ID]: COUNTD([日期])}
  2. 计算有复购行为的人数:COUNT(IF [每人的购买次数] > 1 THEN [用户ID] END)
  3. 计算复购率=复购人数/下单总人数:[每天复购行为的人数] / COUNT([用户ID])

商品销量情况

各类商品销量及用户情况

在这里插入图片描述

各类商品的人均销量情况

在这里插入图片描述

各类商品的子类别产品数

在这里插入图片描述
大类28和50008168销量最佳,大类38虽然销量低、子类数最少但是人均购买量却很高,说明用户在购买38大类下的产品时选择余地较少,但同时用户对此类产品的需求又很旺盛,可以适量的增加大类38下的子类产品,提高销售量。
12265008产品的销量、人均需求量都不高。说明用户对这类产品的需求低,建议减少进货,以免库存积压。

婴儿情况

婴儿年龄分布

在这里插入图片描述
由于数据统计到2015/2,所以我们假定分析日期为2015/3,购买母婴商品的用户中,婴儿年龄主要集中在0-3岁。
这里假定分析日期为2015年,但是觉得应该用购买物品的日期去计算年龄。

婴儿性别占比

在这里插入图片描述

购买母婴产品的用户家庭中有47.1%是男婴,52.9%是女婴。

不同年龄段婴儿购买商品占比

在这里插入图片描述

我们将婴儿年龄进行分组,分别是未出生、婴儿期(0-12个月)、幼儿期(1-3岁)、学龄前期(3-7岁)、学龄期(7+)。

根据上图我们不难看出婴儿各阶段的热销大类:

  • 未出生:50014815、50022520、5008168、28
  • 婴儿期:50014815、50022520、5008168、28
  • 幼儿期:50014815、50008168、28
  • 学龄前期:50008168、28
  • 学龄期:50008168

随着婴儿年龄增长50008168大类的产品需求量逐渐增长而50014815大类的产品需求量逐渐降低。

不同性别婴儿家庭购买商品占比

在这里插入图片描述
女婴家庭的商品需求量明显大于男性家庭,我们细分到商品类别看一下。
在这里插入图片描述
原作者作图如下:
在这里插入图片描述

可以看到大类50014815下的50018831商品的销售记录中有71.05%都是由女婴家庭购买的。在购买记录中不乏某些高销量产品的女婴家庭购买占比为100%的情况。

总结

产品销售情况

  1. 母婴产品销量呈逐年增长趋势,但是每月的波动幅度较大。
  2. 每年受春节影响,第一季度的销量会出现全年低点;在双十一及双十二等
  3. 活动促销下,第四季度销量会达到全年峰值。
  4. 用户复购率极低,需要从产品质量、价格及购买体验等方面进行考虑改善。
    50014815、50008168和28是热销大类TOP3
    大类38虽然销量少但是人均用户购买量却很大,可以考虑在该大类下新增子类,增加用户选择,提高销量。

用户画像

  1. 幼儿期(1-3岁)的用户需求量最大,随着婴儿年龄增长,母婴商品需求量逐渐降低。
  2. 男女婴儿家庭比例接近,但是女婴家庭的购买量明显大于男婴家庭。
  3. 部分商品的女婴家庭购买比例明显大于男婴家庭。可对该类商品进行进一步的女婴化改变,以促使更多的女婴家庭购买。

建议

  1. 在临近春节前一个星期应该减少产品推广投入,减少进货量,保留低量库存;双十一及双十二预热阶段需要加大力度推广,丰富运营活动,吸引更多的客流量。同时,要增加产品库存,保证稳定货物供应。要增加客服人员,及时与物流联系,保证能够及时解答用户疑问并提高出货效率,提高用户购买体验。
  2. 产品复购率偏低。需要加强对已购用户的回访,分析不回购的原因,并对这些因素进行改善。
  3. 女婴家庭购买量高于男婴家庭,建议多推广专为男婴设计的产品,提高男婴家庭的购买量。
  4. 要扩充各大类下的子类产品,特别是大类38,增加用户选择,提高子类商品销量,进而提高大类销量。
  5. 减少12265008大类下的产品进货,以免库存积压。

猜你喜欢

转载自blog.csdn.net/AvenueCyy/article/details/105837422