- 数据来源某网站的用户购买明细。一共有用户ID,购买日期,购买数量,购买金额四个字段.
分析过程之思维导图
分析步骤
第一部分:数据类型的处理—字段的清洗
- 缺失值的处理、数据类型的转化
第二部分:按月数据分析
- 每月的消费总金额、每月的消费次数、每月的产品购买量、每月的消费人数
第三部分:用户个体消费数据分析
- 用户消费金额和消费次数的描述统计、用户消费金额和消费次数的散点图、用户消费金额的分布图(二八法则)、用户消费次数的分布图
、用户累计消费金额的占比
第四部分:用户消费行为分析
- 用户第一次消费时间、用户最后一次消费时间、新老客消费比、用户分层、用户购买周期、用户生命周期,复购率和回购率
第一部分: 数据类型的处理—字段的清洗
一. 首先导入常用的第三方库并做一些初始设置
二. 导入数据并对数据进行处理
- 注意:此处的数据路径为作者放置数据文件的路径,需根据实际情况调整.
三. 导入成功之后让我们来观察一下数据的信息:
仔细观察数据,判断数据是否正常识别,可发现用户id为2的用户在同一天(即:1997-01-12)进行过两次消费,但这并不是异常,一个用户可能在一天内购买多次.
-
注意:此处的df.head()默认显示前五行,如需查询更多可在括号中输入想要查询的行数.
-
图上显示这次的数据共69659行,4列.
由上图可知所有数据每列都有69659行,不存在空值.
-
图中红框的"order_dt"是日期,但其类型却是'Int64'是有符号 64 位整数数据类型.我们需要将其数据类型进行转换.
用describe()可得到平均值,方差等描述性信息.由图我们可以看到用户平均每笔订单购买2.4个商品,标准差在2.3,稍稍具有波动性。中位数在2个商品,75分位数在3个商品,说明绝大部分订单的购买量都不多。最大值在99个,数字比较高。购买金额最大值也约为1286远超75%的购买金额,由此可得大部分订单都集中在小额。
-
一般而言,消费类的数据分布,都是长尾形态。大部分用户都是小额,然而小部分用户贡献了收入的大头,即二八定律。
pd.to_datetime可以将特定的字符串或者数字转换成时间格式,其中的format参数用于匹配。例如19970101,%Y匹配前四位数字1997,如果y小写只匹配两位数字97,%m匹配01,%d匹配01。
同时我们之后需要按月分析,所以用'order_dt'增添一列'month'.
第一部分小结:
- 我们看到了数据的基本信息并了解到该数据没有缺失值,然后数据类型已经转化完毕,我们准备进行下一步按月分析数据.
第二部分:按月数据分析
- 因为要按月分析我们使用pd.groupby将数据根据月份分组.
一. 每月的消费总金额
-
使用sum函数将分组后的消费金额进行汇总得到每个月的消费总金额,可看到前几个月的销量非常高涨。数据比较异常。而后期的销量则很平稳。不过不是很明显,接下来我们用图表来显示消费总金额的趋势.
二. 每月的消费次数
- 前三个月消费次数在1000左右,接下来的几个月逐渐在2000左右稳定波动.
三. 每月的产品购买量
- 这里可以看到线的颜色变了,是参数color='green'起了作用.
- 与每月总消费金额类似,在前三个月达到高峰,然后直线下降后,逐渐平稳.在此我们可以分析一下,为什么会呈现这个趋势?首先可能是用户中存在异常值,第二有可能是各类促销营销,这里只有消费数据无法判断.
四. 每月的消费人数
- 每月的消费人数小于每月的消费次数,但是区别不大。前三个月每月的消费人数在8000—10000之间,后续月份,平均消费人数在2000不到。一样是前期消费人数多,后期平稳下降的趋势。
- 由此可以看出大部分用户每个月只消费了一次.
- 上图是pandas数据透视表的功能可以得出我们之前计算的三个图的数据详情.
五. 每月用户的消费趋势
-
可以看到每月用户平均消费从97年一月份开始上涨,最高达到57.之后的月份都在50上下稳定的波动.
从图中可看到每月平均消费次数为1次.和上面每月消费人数和每月消费次数对比的结果一致.
第二部分小节:
-利用分组和聚合等操作并将其可视化简单地了解了消费趋势.
第三部分:用户个体消费数据分析
-
之前我们维度都是月,来看的是趋势。有时候我们也需要看个体来看这个人的消费能力如何?
- 同样我们先按用户将数据分组.
一. 用户消费金额和消费次数的描述统计
从用户角度,可以看出用户平均购买了7张CD,客单价为106元.结合分位数和最大值看,75%的用户达不到平均值,所以有狂热爱好者购买大量CD使整个数据处于右偏分布,证明了存在小部分的高额消费用户,拉高了平均值。
以上基本上符合二八法则,小部分的用户占了消费的大头
二. 用户消费金额和消费次数的散点图
-
可以看出有个别异常值存在,使得大部分用户的消费金额和消费次数的情况处于散点图左下聚集成一团,不利于我们观察.
-
我们由上一个散点图看出大部分用户的消费金额都低于4000,所以利用query去除大于4000的值,使我们的图形更容易观察.我们初步可以看出消费金额和消费次数呈现出一个线性.
- 这里的1306元是根据切比雪夫定理,利用96%的值都处于平均值的5个标准差之内得出的.同时从散点图我们可以更明显地看出,用户比较健康而且规律性很强。因为这是CD网站的销售数据,商品比较单一,金额和商品量的关系也因此呈线性,没几个离群点。
三. 用户消费金额的分布图(二八法则)
- 从上图直方图可知,大部分用户的消费能力确实不高,绝大部分呈现集中在很低的消费档次。高消费用户在图上几乎看不到,这也确实符合消费行为的行业规律。
-
有极值干扰了我们的数据,但是大部分的用户还是集中在比较低的而消费档次。
-根据切比雪夫定理使直方图更清晰,更进一步的了解到大部分的用户消费档次在200元以下.
四. 用户消费次数的分布图
-
与平均消费金额类似
- 大部分用户在20次以下.
五. 用户累计消费金额的占比(百分之多少的用户占了百分之多少的消费额)
- 使用累加值除以总值得到占比.注意这里的reset_index不可省略,如果省略会出现作图错误.
-
由图可得排名前4000~5000名用户贡献了60%的消费额度,50%的用户只贡献了15%的消费额度.也就是说我们只要维护了这大约5000个用户就可以把业绩KPI完成60%,如果能把大约5000个用户运营的更好就可以占比70%—80%之间。
- 这是占比的表格.
第三部分小节:
- 用户的情况符合二八定律,我们应该用心维护好排名在前20%的用户,同时针对性地对其进行更好的服务和营销.
第四部分:用户消费行为分析
一. 用户第一次消费时间
- 从x轴的跨度看出,所有用户的第一次消费都集中在前三个月中,每日新增的用户也在200~350之间波动.
二. 用户最后一次消费时间
用户最后一次消费比第一次消费分布广,图中红框可看出大部分最后一次消费集中在前三个月,说明很多客户购买一次就不再进行购买。三个月之后,流失曲线趋于稳定.随着时间的增长,最后一次购买数也在递增,消费呈现流失上升的趋势,用户忠诚度在慢慢下降。
公司应该关注用户流失的原因,特别是1998年3月到7月之间增长幅度较大,应采取相应措施防止老客户流失.
措施建议:1. 如加强服务,对老用户推荐他/她喜爱的CD类型.
2.增加回馈方式(留言板),并及时整理回馈做出调整等等.
三. 新老客消费比
-
user_id为1和2的用户第一次消费时间和最后一次消费时间一致,说明他们只消费了一次.
- 有超过一半(51%)的用户只消费了一次.
四. 用户分层
-使用RFM模型来进行分析
1.最近一次消费 (Recency)
2.消费频率 (Frequency)
3.消费金额 (Monetary)
-
这里使用消费产品数量代替了消费次数.
- 这里因为年代久远使用的是距今最近的一天作为今天来与每个用户的最后一次消费时间相减.
-
R表示客户最近一次交易时间的间隔,客户在最近一段时间内交易的金额,R越小证明用户最近还在消费.F表示客户在最近一段时间内交易的次数,F值越大,表示客户交易越频繁,反之则表示客户交易不够活跃。M表示客户在最近一段时间内交易的金额。M值越大,表示客户价值越高,反之则表示客户价值越低。
-
利用原值减去平均值将特征分层,3个特征分成6层用于评价描述客户价值.
-
使用分类后的客户计算不同种客户的消费情况.可以看出重要保持客户累计的金额最多.即011,证明R越小,M和F越大.产生的消费额度越大.
- 可以看出重要保持客户在总人数中虽然不多只有4554人却产生了巨大的价值,需要针对性进行服务,提高本类用户的消费体验,让用户持续产生价值.
-
最多的是一般发展客户共14074人,最具价值的重要保持客户共4554人,符合二八定律.
-计算不同类客户的人数并画图.
- 在运营策略上,应结合用户分层的结果,针对不同的用户分类用户制定不同的运营策略。
- 针对19.3%的重要保持客户,应保持好现状;
- 针对1.4%的重要发展客户,由于其价值高但是频次低,应采取合适的策略来刺激其消费频率;
- 针对3.3%的重要价值用户,应采取合适的策略来将其召回,留住该用户;
-
针对1.0%的重要挽留用户,召回他并刺激其消费;其余几类用户都要在考虑成本的情况下采取相应的策略召回、刺激消费。
- 散点图看出重要价值客户虽然有高消费水平但已经有很长一段时间没有进行消费,应该将其发展为重要保持客户.措施:如发邮件推荐新CD,或找出重要价值客户最近不消费的原因并提出解决方案.
五. 用户分层二
-将用户划分为新用户(new),活跃用户(active),回流用户(return),流失/不活跃用户(unactive)以及未注册用户(unreg).
- 对于用户的划分只需要知道用户本月是否消费,消费次数在这里并不重要,需要将模型进行简化.消费过为1,没消费过为0.
-
使用数据透视表,获取的是每个用户,在整个数据集时间周期里是否消费,有些用户在某些月份并没有消费可能会出现NaN,这里用filna(0)填充NaN。
- 自义定函数来划分用户在每个月的状态.
流程如下:
-
将未注册人员变为空值不带入计算.
-
将各种状态的用户按月统计.
- 消费用户的构成以及比例
- 可以看到三个月后几乎没有新用户流入,后期不活跃用户占90%以上,活跃用户和回流用户的占比相对较稳定。所以网站的营销重心应放在活跃用户和回流用户上.
- 对于活跃用户,增强其消费体验,维持其忠诚度.
- 对于回流用户,发放适当的优惠政策促进其消费.
六. 用户购买周期
-
按用户分类后将用户两次消费时间相减得出不同用户的购买周期.
- 订单周期分布呈指数分布
- 用户的平均购买周期是68天
- 绝大部分用户的购买周期都低于100天
七. 用户生命周期
-
用户生命周期分布描述.
-因为有很大部分用户只购买了一次,对用户生命周期产生了巨大的影响,在此排除.
- 消费两次以上的用户平均生命周期是276天。
- 用户生命周期分布直方图呈现双峰趋势,有部分用户虽然在短期时间内消费超过两次,但是仍旧无法持续,应该在用户消费30天内加以引导,促进其再次消费并形成消费习惯,延长其生命周期。
- 用户生命周期在100-400天的用户属于普通型的生命周期,需要根据其特点推出针对性的营销活动,引导其持续消费。
- 用户生命周期大于400天的,属于忠诚用户,要重点维护,制定个性化的运营策略。
八. 复购率和回购率
- 复购率
自然月内多次购买的用户的占比 - 回购率
曾经买过商品的用户,在一定时期内再次购买商品
1. 复购率
-
通过函数将购买0次的转化为NaN避免影响运算,将购买1次的转换为0,购买多次的转换为1.
-
通过求和和计数运算的差求得复购率.图中可知复购率稳定在20%.
- 图上可以看出复购率在早期不到12%,因为大量新用户加入的关系,新客的复购率并不高。而在后期复购率缓慢上升,这时剩下的都是忠诚度高的老客户,复购率比较稳定,在20%左右.
2. 回购率
-
判别函数主要逻辑:如果用户本月有消费,且下月有消费,记为1,下月无消费,记为0;如果用户本月没有消费,记为NaN,后续的统计中将自动排除。最后一个月消费记录无法得知下一月的消费情况所以直接记为NaN.
-
从回购率折线图可以看出:新用户的回购率在15%左右,老客户的回购率在30%左右,且高于复购率,波动性较强。
- 回购率的平均值为28%,中位数为30%,与折线图得出的结果一致.
- 综合回购率和复购率可知,新客户的整体质量低于老客户,老客户的忠诚度表现较好,这是CDNow网站的用户消费特征。
总结:
- 根据以上四个部分我们可知:
- CDNow网站的老客户忠诚度良好,应重点保持回购率稳定性并设法提高回购率.
- 用户生命周期在100-400天的用户属于普通型的生命周期,需要根据其特点推出针对性的营销活动,引导其持续消费。
用户生命周期大于400天的,属于忠诚用户,要重点维护,制定个性化的运营策略。 - 用户的平均购买周期是68天,网站可以通过营销手段,缩短购买周期.
- 活跃用户和回流用户的占比相对较稳定。所以网站的营销重心应放在维护活跃用户和回流用户上.
- 用户的情况符合二八定律,我们应该用心维护好排名在前20%的用户,同时针对性地对其进行更好的服务和营销.