为减少篇幅,本文将尽量少的配上源码,在文末提供的源码文件中已经有详细注释。
本案例结合Python和Tableau,由于数据量及维度较少,所以更多的是使用Tableau进行可视化处理。
项目介绍
项目背景
根据PEST框架,从四个角度简要分析:
政策Politics:国家发展改革委2013年5月28日表示,13个部门将出台系列政策措施,从可信交易、移动支付、网络电子发票、商贸流通和物流配送共5个方面支持电子商务发展,有利于促进在线母婴商品市场快速发展。
经济Economy:随着国内经济的稳定增长,2015年我国城镇居民可支配收入增长到31195元, 同期农村居民可支配收入增长到11422元。不断提高的人均可支配收入将提升家庭的消费意愿,2015年中国母婴行业市场规模有望达到2万亿。
社会Society:对于一线城市居民来说,随时随地通过手机、电脑等电子网络设备足不出门即可完成购物的新型消费方式更能适应他们紧凑的生活节奏;而对于二三线城市以及农村居民,物流上门配送带来的便捷也使得网购更具吸引力。
技术Technology:4G网络的普及、手机和ipad等移动设备快速升级迭代更新、网络在线支付系统的发展,为电子商务迅速崛起注入强大的动力。
分析目的
帮助在线商家针对不同的时间节点和场景做出不同的销售和运营管理策略,帮助商家提高销量和营业额、减少经营成本。
根据孩子的信息(年龄、性别等)来预测用户会购买什么样的商品。(暂未完成)
问题拆解
数据概览
Ali_Mum_Baby是一个包含超过900万儿童信息(生日和性别)的数据集,由消费者提供,他们共享这些信息是为了获得更好的推荐或搜索结果。本次数据共有两个csv。婴儿信息表
Column | Description |
---|---|
user_id | user id |
birthday | children's birthday |
gender | 0-female,1-male,2-unknown |
交易记录表
Column | Description |
---|---|
item_id | item id |
user_id | user id |
cat_id | category id |
cat1 | root category id |
propery | property of the corresponding item |
buy_mount | purchase quantity |
day | timestamp |
数据准备
导入数据
baby = pd.read_csv("./sam_tianchi_mum_baby.csv")
trade =pd.read_csv("./sam_tianchi_mum_baby_trade_history.csv")
概览数据
baby表只有3个维度,共953行数据,无缺失值。
trade表有7个维度,共29971行数据,无缺失值。
trade.property是商品属性,由于全是数值字符串,所以我们先删除。trade表中的buy_mount是我们关注的重要标签,从描述性统计以及图像上来看,该数据的均值为2.5,标准差64,存在异常值,所以我们保存距离均值3个标准差内的数据,即[0,195]。
数据清洗
查看有无缺失值异常值,并进行处理。
trade中的auction_id未指定是什么属性,我们就将他默认改为item_id。
数据集中的property全是数字,需要有对应的字典才能知道对应什么属性,这边先删除。
day改成日期形式。
# 根据info()查看,本数据集无缺失值
# 列重命名
trade.rename({"auction_id":"item_id"},axis=1,inplace=True)
# 先将property暂且取出放在一边,后续再分析
property = trade.property
trade.drop('property',axis=1,inplace=True)
# 日期类型转换
baby['birthday']=pd.to_datetime(baby.birthday.astype('str'))
trade['day'] = pd.to_datetime(trade.day.astype('str'))
经过清洗后的数据保留下29942行。统计时间是2012/7/2-2015/2/5。整个数据集中共6个商品大类,662个商品分类,28394件商品,29915名用户。
这是两年多经过删减的数据,由于缺少部分数据,所以我们只能根据这份数据集进行分析。主要是思路。
数据分析
整体市场情况
2017/7-2015/2期间总销量是49973件,从上图我们可以看出淘宝和天猫平台母婴商品市场销量整体呈现上升趋势,但是波动较大。
2015年由于数据缺失,所以不能反应2015年第一季度的真实销量情况
每年第一季度的销售额都会呈现一定幅度的下跌。每年第四季度的销量都会呈现大幅度上升。
2013年和2014年的第一季度销量都有所下滑,主要聚集在1、2月。
每年的5月、11月都会出现不同程度的销量上涨。
第一季度销量下降原因
假设第一季度下降原因是和春节有关。
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年第一季度情况
临近春节可能存在部分企业提早放假,快递停运,销售低谷时段与春节假期基本吻合,假期结束后购买量和用户量上升,所以可以认为第一季度销量下降是由春节假期造成的。
第四季度销量上涨原因
假设和双十一双十二活动有关。
可以很明显看出2013年和2014年双十一及双十二当天的销量和销售额都激增。
每年的双十一活动用户量和销量都比往年多,用户量增长为75%-80%。
所以可以认为每年第四季度的销量上涨和双十一双十二活动有很大的关系。
复购率
各月产品复购率极低。各大类的复购率也极低,均未有超过1%,其中大类38的复购率最高为0.17%。考虑到用户单次购买量大多是一件,且复购率低,说明用户对单一商品的回购欲望极低,商家应该从产品角度进行考虑,例如产品质量及购物体验等。
商品销量情况
大类28和50008168销量最佳,大类38虽然销量低、子类数最少但是人均购买量却很高,说明用户在购买38大类下的产品时选择余地较少,但同时用户对此类产品的需求又很旺盛,可以适量的增加大类38下的子类产品,提高销售量。12265008产品的销量、人均需求量都不高。说明用户对这类产品的需求低,建议减少进货,以免库存积压。
婴儿情况
将两张表inner连接后发现存在1984年的婴儿,明显属于异常值,我们要剔除掉。由于数据统计到2015/2,所以我们假定分析日期为2015/3,购买母婴商品的用户中,婴儿年龄主要集中在0-3岁。购买母婴产品的用户家庭中有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%的情况。
总结
产品销售情况
母婴产品销量呈逐年增长趋势,但是每月的波动幅度较大。
每年受春节影响,第一季度的销量会出现全年低点;在双十一及双十二等活动促销下,第四季度销量会达到全年峰值。
用户复购率极低,需要从产品质量、价格及购买体验等方面进行考虑改善。
50014815、50008168和28是热销大类TOP3
大类38虽然销量少但是人均用户购买量却很大,可以考虑在该大类下新增子类,增加用户选择,提高销量。
用户画像
幼儿期(1-3岁)的用户需求量最大,随着婴儿年龄增长,母婴商品需求量逐渐降低。
男女婴儿家庭比例接近,但是女婴家庭的购买量明显大于男婴家庭。
部分商品的女婴家庭购买比例明显大于男婴家庭。可对该类商品进行进一步的女婴化改变,以促使更多的女婴家庭购买。
建议
在临近春节前一个星期应该减少产品推广投入,减少进货量,保留低量库存;双十一及双十二预热阶段需要加大力度推广,丰富运营活动,吸引更多的客流量。同时,要增加产品库存,保证稳定货物供应。要增加客服人员,及时与物流联系,保证能够及时解答用户疑问并提高出货效率,提高用户购买体验。
产品复购率偏低。需要加强对已购用户的回访,分析不回购的原因,并对这些因素进行改善。
女婴家庭购买量高于男婴家庭,建议多推广专为男婴设计的产品,提高男婴家庭的购买量。
要扩充各大类下的子类产品,特别是大类38,增加用户选择,提高子类商品销量,进而提高大类销量。
减少12265008大类下的产品进货,以免库存积压。
参考文章
[1]
母婴产品电商销售情况的深入分析: https://zhuanlan.zhihu.com/p/129072269
本文的源数据,Python源码及Tableau文件
后台回复“母婴”即可获取
● 80%的人都不知道,全球Python库下载前10名● 我珍藏的一些好的Python代码,技巧|上篇● 爬取300本Python书籍,用Python告诉你哪家强?● 简单几步,100行代码用Python画一个蝙蝠侠的logo● 我用Python分析了《青春有你2》109位漂亮小姐姐,真香!● 牛逼操作!用Python做了一个编程语言20年的动态排行榜!● 我打赌,学会这6招,谁再敢笑你的Python程序慢!
每天分享一些有趣的干货