数据分析数据蛙数据分析基础学习数据分析

python案例——群组分析(以周为单位)

2019-11-17  本文已影响0人  Gaafung峰

前言:

群组分析指的是针对具有共同特征的一群用户,对其进行留存、活跃、付费等情况分析,通常会以一定时间段划分用户行为。
本次案例数据源来自秦路老师的orderinfo,对于群组进行用户留存分析,以周为单位
最终结果:

image.png
image.png

案例步骤

数据读取

image.png

字段解释:
orderid - 订单id,无重复
userid - 用户id,有重复
ispaid - 是否支付,分已支付、未支付,本次研究已支付部分
paidtime - 支付时间

一、数据清洗

image.png
1.1 Paidtime剔除空值影响
image.png
1.2 剔除isPaid未支付
image.png
1.3 建立新字段OrderPeriod

因为我们是在做周度群组,所以我们会关注用户的周度行为。

转换数据类型


image.png

新建字段OrderPeriod,以周为时间段划分


image.png

二、数据处理

2.1 创建一个名为CohortGroup的新列,它是用户第一次购买的时间区段。
image.png
2.2 按CohortGroup 及 OrderPeriod 汇总数据,查看每个时间段第一次购买的总用户人数
image.png

2.3 为每个CohortGroup标记CohortPeriod

我们想要查看每个队列在他们第一次购买后的几周内的表现,因此我们需要将每个队列与他们的第一次购买的时间段建立索引。例如,CohortPeriod = 1是队列的第一个时间段,CohortPeriod = 2是第二个时间段,以此类推。


image.png

2.4用户保留按群组分组

我们想要查看每组随时间变化的百分比,而不是绝对变化。
为此,我们首先需要创建一个包含每个CohortGroup及其大小的panda系列


image.png

现在,我们需要用cohort_group_size除以以cohort_group_size为单位的TotalUsers值。由于DataFrame操作是基于对象的索引执行的,所以我们将在我们的组DataFrame上使用unstack来创建一个矩阵,其中每一列表示一个CohortGroup,每一行表示对应于该组的CohortPeriod。
为了说明unstack的作用,请回忆一下前五个TotalUsers值:


image.png
image.png
image.png

三、最后,我们可以绘制随时间变化的队列,以发现行为上的差异或相似之处。

两种常见的队列图是线图和热力图,如下图所示。
请注意,每个队列的第一阶段是100%——这是因为我们的队列基于每个用户的第一次购买,也就是说队列中的每个人都是在第一个时间段购买的。


image.png
image.png

参考网站:https://www.jianshu.com/p/1d0aad81b6eb
数据源:https://pan.baidu.com/s/12iKprOiRA0O79NcsPggeMA

上一篇下一篇

猜你喜欢

热点阅读