电商平台母婴用品数据分析

电商母婴用品数据分析

(fork自https://www.kesci.com/home/project/5ec87647b2aca3003746df39)

项目介绍

项目背景

(从PEST角度)

政策Politics:国家发展改革委2013年5月28日表示,13个部门将出台系列政策措施,从可信交易、移动支付、网络电子发票、商贸流通和物流配送共5个方面支持电子商务发展,有利于促进在线母婴商品市场快速发展。

经济Economy:随着国内经济的稳定增长,2015年我国城镇居民可支配收入增长到31195元, 同期农村居民可支配收入增长到11422元。不断提高的人均可支配收入将提升家庭的消费意愿,2015年中国母婴行业市场规模有望达到2万亿。

社会Society:对于一线城市居民来说,随时随地通过手机、电脑等电子网络设备足不出门即可完成购物的新型消费方式更能适应他们紧凑的生活节奏;而对于二三线城市以及农村居民,物流上门配送带来的便捷也使得网购更具吸引力。

技术Technology:4G网络的普及、手机和ipad等移动设备快速升级迭代更新、网络在线支付系统的发展,为电子商务迅速崛起注入强大的动力。
###分析目的

  1. 帮助在线商家针对不同的时间节点和场景做出不同的销售和运营管理策略,帮助商家提高销量和营业额、减少经营成本。
  2. 根据baby一表中的birthday字段判断出客户宝宝的年龄,或者根据孩子的信息(年龄、性别等)及对应的商品销量来推断用户喜好进行精准营销。
    ##数据预处理与探索性分析
baby = pd.read_csv("/home/kesci/input/dian5962/(sample)sam_tianchi_mum_baby.csv")
trade = pd.read_csv("/home/kesci/input/dian5962/(sample)sam_tianchi_mum_baby_trade_history.csv")
baby = pd.read_csv("/home/kesci/input/dian5962/(sample)sam_tianchi_mum_baby.csv")
trade = pd.read_csv("/home/kesci/input/dian5962/(sample)sam_tianchi_mum_baby_trade_history.csv")
baby.head()
 	user_id 	birthday 	gender
0 	2757 	20130311 	1
1 	415971 	20121111 	0
2 	1372572 	20120130 	1
3 	10339332 	20110910 	0
4 	10642245 	20130213 	0
trade.head()
 user_id 	auction_id 	cat_id 	cat1 	property 	buy_mount 	day
0 	786295544 	41098319944 	50014866 	50022520 	21458:86755362;13023209:3593274;10984217:21985... 	2 	20140919
1 	532110457 	17916191097 	50011993 	28 	21458:11399317;1628862:3251296;21475:137325;16... 	1 	20131011
2 	249013725 	21896936223 	50012461 	50014815 	21458:30992;1628665:92012;1628665:3233938;1628... 	1 	20131011
3 	917056007 	12515996043 	50018831 	50014815 	21458:15841995;21956:3494076;27000458:59723383... 	2 	20141023
4 	444069173 	20487688075 	50013636 	50008168 	21458:30992;13658074:3323064;1628665:3233941;1... 	1 	20141103
baby.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 953 entries, 0 to 952
Data columns (total 3 columns):
user_id     953 non-null int64
birthday    953 non-null int64
gender      953 non-null int64
dtypes: int64(3)
memory usage: 22.4 KB
trade.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 29971 entries, 0 to 29970
Data columns (total 7 columns):
user_id       29971 non-null int64
auction_id    29971 non-null int64
cat_id        29971 non-null int64
cat1          29971 non-null int64
property      29827 non-null object
buy_mount     29971 non-null int64
day           29971 non-null int64
dtypes: int64(6), object(1)
memory usage: 1.6+ MB
#baby表有3个字段,tade表有7个字段,都没有缺失值
trade.buy_mount.describe()
count    29971.000000
mean         2.544126
std         63.986879
min          1.000000
25%          1.000000
50%          1.000000
75%          1.000000
max      10000.000000
Name: buy_mount, dtype: float64

```python
quantity = trade.buy_mount.value_counts().sort_index()
plt.figure(figsize=(10, 8))
sns.scatterplot(x=quantity.index, y=quantity.values, alpha=0.3)
plt.title("单个订单购买量分布", fontdict=fontdict)
plt.ylabel("订单数", fontdict=fontdict)
plt.xlabel("购买量", fontdict=fontdict)
plt.show()

数据清洗

  1. 保留buy_amount[1,195]以内的订单。
  2. 查看有无缺失值异常值,并进行处理。
  3. trade中的auction_id未指定是什么属性,我们就将他默认改为item_id。
  4. 数据集中的property全是数字,需要有对应的字典才能知道对应什么属性,这边先删除。
  5. day改成日期形式。
# 本次统计数据的时间范围是2012/7/2-2015/2/5
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
# 保留buy_mount[0,195]以内的记录
trade = trade[(trade.buy_mount >= 1) & (trade.buy_mount <= 195)]
# 列重命名
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')) #由上面infoa过可知日期都是int类型的需转为字符串类型
trade['day'] = pd.to_datetime(trade.day.astype('str'))

```python
count_cat1 = trade.cat1.nunique()
count_cat = trade.cat_id.nunique()
count_item = trade.item_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

市场整体情况

(下面的代码太多了先不贴,主要是分析思路)

整体销售情况

1.先按年份
在这里插入图片描述 2012/7-2015/2期间总销量是49973件,从上图可知该电商平台的母婴商品市场销量2012-2014上升趋势,2015年销量骤降,因为统计的2015年只有两个月的数据,接下来分析每一年的季度销量来对比。
2.按季度分析
在这里插入图片描述 2015年由于数据缺失,所以不能反应2015年第一季度的真实销量情况
每年第一季度的销售额都会呈现一定幅度的下跌。每年第四季度的销量都会呈现大幅度上升。所以接下来按月份分析找出第一季度销量下降和第四季度销量上升的原因
3.按月份分析
月销量趋势 2013年和2014年的第一季度销量都有所下滑,主要聚集在1、2月,一般春节在1、2月,先假设销量下滑是受到春节的影响。
每年的5月、11月都会出现不同程度的销量上涨,每年11月份有双十一促销活动,假设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.用户性别
在这里插入图片描述2.用户年龄(假设统计时间为2015年3月)
在这里插入图片描述3.各年龄段的商品总销量分析(联结两张表)
在这里插入图片描述4.用户购买行为
这里由于缺少每笔订单的金额信息,无法进行RFM模型分析,这里只能分析每月复购率(由于数据不完整,只计算2013年和2014年的复购率)
在这里插入图片描述在这里插入图片描述4月、10月及11月都存在一定的用户当月复购,但是复购率都极低,各产品大类的复购率也极低,均未到达1%,考虑到用户单次购买量大多是一件,且复购率低,说明用户对单一商品的回购欲望极低,商家应该从产品角度进行考虑,例如产品质量及购物体验等。
##商品销量分析
在这里插入图片描述在这里插入图片描述

在这里插入图片描述大类28和50008168销量最佳,大类38虽然销量低、子类数最少但是人均购买量却很高,说明用户在购买38大类下的产品时选择余地较少,但同时用户对此类产品的需求又很旺盛,可以适量的增加38大类下的子类产品,提高销售量。
##总结
1.总体销售情况:
(1)总体销售量逐年增长但每月销售量的波动大。
(2)受到春节的影响,每年年1、2月份的销量下降。
(3)受到双11、双12的影响促销活动日期都有一定的涨幅。
2.用户画像
(1)消费者中女孩与男孩的人数占比接近,女孩稍多于男孩。
(2)消费者的年龄主要集中在0-3岁,0-3岁购买的商品总量也最大。
(3)性别中含有未知这一项,消费者可能是准妈妈/准爸爸,占比较少。
3.商品销售情况
(1)大多数的用户订单购买量是一件,且复购率极低。
(2)大类50014815、50008168和28的销量最高
(3)大类38虽然子类数量少销量少但是人均用户购买量却很大,复购率也最高,可以考虑在该大类下新增子类,增加用户选择,提高销量。

建议

1.春节前为减少货物积压应减少进货,双十一及双十二预热阶段需要加大力度推广,丰富运营活动,吸引更多的客流量。同时,要增加产品库存,保证稳定货物供应。要增加客服人员,及时与物流联系,保证能够及时解答用户疑问并提高出货效率,提高用户购买体验。
2.从用户角度,可以根据以上分析的消费者性别和年龄进行个性化推荐。比如根据性别为“未知”推测用户可能是准妈妈/准爸爸,可根据用户这个身份个性化推荐一些孕妇用品。
3.产品复购率偏低。需要加强对已购用户的回访,分析不回购的原因,并对这些因素进行改善。
4.大类38虽然子类数量少销量少但是人均用户购买量却很大,复购率也最高,可以考虑在该大类下新增子类,增加用户选择,提高销量。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值