摘要
通过母婴类产品客户购买行为数据分析,找出核心的用户群,并分析整理销量的趋势,找出其中需要改进的环节~
项目描述
项目名称:母婴用品数据分析
数据来源:数据来源于阿里云天池,有2个表,记录了用户身份信息,商品购买数量,用户的年龄和商品数等。时间介于12年至15年。
字段说明:
baby_trade_history表:
user_id:用户id(唯一值)
auction_id:购买行为编号
cat_id:商品种类ID
cat1:商品属于哪个类别
property:商品属性
buy_mount:购买数量
day:购买时间
mum_baby表:
user_id :用户id
birthday :出生日期
gender: 性别(0 男性;1 女性)
项目目的:通过母婴类产品客户购买行为数据分析,为以下问题提供解释和改进建议:客户对于不同产品的偏好
找出核心的用户群,并对其分析整理销量的趋势分析,并找出其中需要改进的环节
环境解释:基于jupyter notebook,可视化工具包:seaborn、matplotlib
1 | # 导入模块 |
1 | goods_df = pd.read_csv('baby_trade_history.csv',sep = ',') |
数据处理
字段重命名
为方便字段操作与识别,进行字段重命名
1 | # 商品信息表字段重命名 |
1 | # 婴儿信息表字段重命名 |
格式转换
方便以后换算以及添加新特征类别,进行时间格式转换
1 | # 时间格式转换 |
字段处理
1 | # 处理baby表中性别 |
新特征生成
1 | # 购买年份 |
1 | # 根据购买数量进行排序,粗略查看购买数量最多的是哪些商品以及用户 |
图表解析:单次购买数量最多的是:50014815;其次为28商品
可视化分析
商品类型购买分析
1 | # 商品类别与购买数量 |
图表解析:28商品产品销量最高,其次是50014815商品和50008168商品
1 | # 查看商品类别与购买的用户之间的联系 |
图表解析:把汇总依据改成计数项得知,更多用户倾向于5008168产品,其次是28。
由此反应出5008168接受的人群会更多但必须提高用户的粘性让其重复购买的次数增多。
购买时间分析
月份分析
1 | # 根据月份分析购买趋势 |
图表解析:
2013年开始到2014年年末,用户的总体消费次数(订单数)趋势呈现上升趋势。其中,2013年和2014年年间,用户的消费波动也是相似的。
13年订单数有2个高峰,分别是5月和11月。
14年订单数有2个高峰,分别是5月在和11月。
1 | # 购买月份与购买数量 |
图表解析:2013年11月和2014年11月,由于双11活动,销量有明显的上升。其中,14年的销量明显比13年高出很多
原因猜测 :根据淘宝官方数据显示,14年阿里的销售额相当于13年的1.6倍,说明在14年双11活动开始被越来越受到大众关注,商家的促销活动也更加刺激消费,从而导致了销量的攀升
1 | # 根据月份统计购买情况 |
<matplotlib.axes._subplots.AxesSubplot at 0x1a22605a20>
图表解析:根据月份统计销售情况,11月是全年最高的,可能由于双十一促销或者商家活动所导致销量攀升
季度分析
1 | # 根据季度分析购买情况 |
图表解析:
根据季度统计,第四季度销量最高;第一第二季度销量都不高而细分到每一年每一季度查看时:也发现每年的第一第二季度销量都不高,可认定为产品淡季;而第三第四季度销量很好,属于产品的旺季,即秋天后是母婴产品销售的旺季
而第四季度的销量最好,很大可能是双十一的影响根据前面图表分析入秋后销量增加,到2月又开始下滑。应在2月份发起促销清理库存,入秋后再囤积货物。
产品需求分析
购买数量对比
1 | df = pd.merge(baby_df,goods_df,on = '用户id',how = 'right') |
1 | # 根据性别划分,统计购买数量 |
产品购买趋势
1 | sex_df = df.dropna(axis = 0,how = 'any') |
1 | plt.figure(figsize = (15,7)) |
图表解析:上图可以看到,女婴销量比男婴少的原因是在14年的6月到9月,销量有个明显跌落。但在总体的产品需求趋势来看,男女婴儿大致上相同。所以商家的计划上新的产品量可以男女平均分配
商品类别需求
1 | df5 = df[['性别','商品类别','购买数量']] |
图表解析:男女婴儿对50008168商品需求最大,且男婴比例较女婴大,正对50008168商品可以多向男婴做推广或打造爆款
用户分析
消费分析
1 | group_user = df.groupby('用户id') |
count 29944.000000
mean 2.546420
std 64.015736
min 1.000000
25% 1.000000
50% 1.000000
75% 1.000000
max 10000.000000
Name: 购买数量, dtype: float64
图表解析:平均数是2,标准差是64,表明波动比较大。中位数是1,上下四分位数也是1,说明大部分用户只购买1件。最大值是10000,说明有部分刚需用户拉大了平均值。这批用户值得开发维护。
1 | e = group_user.sum().query('购买数量 < 17') |
图表解析:可以看出绝大部分用户只购买了一件
行为分析
用户首购
1 | # 用户首购 -- 第一次购买 |
图表解析:
用户首购的时间分布范围比较广,从2012-7到2015-2都有,呈现稳步上升趋势。 其中:
2013-11-11 购买用户数:139
2013-12-12 购买用户数:142
2014-11-11 购买用户数:454
2014-12-12 购买用户数:221
说明双十一打折促销活动对用户的吸引很大,新增用户比平时要多很多,建议运营人员多关注好的渠道,即找最少的投入,但有最好效果的渠道去做优化。后续还可以对广告页面做A/B Testing,把好的元素保留,不好的再进行优化。
用户流失
1 | # 用户流失 -- 最后一次购买 |
图表解析:最后一次购买和第一次购买图形很类似,原因应该是大部分用户就进行一次消费
1 | # 验证大部分用户就进行一次消费 |
True 29920
False 24
dtype: int64
图表解析:有29920位用户仅消费一次,只有24位用户进行了多次消费
复购率
1 | # 复购率 |
1 | # 数据筛选 |
1 | # 复购率折线图 |
图表解析:复购率最高在0.14%,可以得知大部分用户只购买一次
总结
-
每月用户的消费趋势
- 订单数:2013年开始到2014年年末,用户的总体消费次数(订单数)趋势呈现上升趋势。同时用户的消费波动也是相似的。6月和11月是消费高峰期。
- 成交数量:随着阿里双11越来越被大众接受,产品成交数量也是越来越高。
- 成交用户数:每月的消费人数和每月的订单数趋势波动基本相同。
-
男女婴儿产品成交数量的比例与趋势:男女婴儿的产品需求总体趋势来看是1:1。
- 建议商家的计划上新的产品量可以男女平均分配。
-
用户个体的消费情况分析
- 每位用户的成交数量的描述统计: 平均数是2,标准差是64,表明波动比较大。
- 中位数是1,上下四分位数也是1,说明大部分用户只购买1件。
- 最大值是10000,说明有部分刚需用户拉大了平均值。建议这批用户值得开发维护。
-
用户消费行为分析
- 用户的第一次消费(首购):用户首购的时间分布范围比较广,从2012-7到2015-2都有,呈现稳步上升趋势,说明新客的渠道,商家的运营做的都还可以。另外14年双11和双12同比13年上涨了56%,64%,说明打折促销活动对用户的吸引很大,新增用户环比前几月也明显增多。
- 建议运营人员多关注好的渠道,即找最少的投入,但有最好效果的渠道去做优化。后续还可以对广告页面做A/B Testing,把好的元素保留,不好的再进行优化。
- 用户的最后一次消费(流失),用户复购率:由于这个数据集是网上来源,有缺失,大部分用户只消费1次,所以流失和复购率不是很准。
写在最后
以上是对母婴用品数据做的一下分析与可视化,数据内容还有待挖掘。文中有任何错误,欢迎指正!感谢阅读~