一 目的
本文自于京东平台的用户行为,数据集截取了3个字段:customer_id、action_date、type。
本文最主要的目的是练习Python进行数据分析,在此由衷感谢秦路老师的文章:秦路:用Python分析用户消费行为,让学习的课程有了真实落地的机会。
二 数据加载以及预处理
导入相关库以及加载数据集:
空值处理:
数据很干净,并没有空值。
添加时间序列:
三 数据分析
PV分析:
2月15日PV处于最低值是因为春节,3月27、28很可能是技术BUG,导致数据大幅度下降。
销售分析:
同样也是在春节,销量达到最低点,而4月的销售相较于3月,销量有所下滑。
购买次数分析:
购买1次的用户达到10670,2次的为44,3次的只有1次。用户粘性度不高,需要从服务、产品、活动等环节入手,刺激二次消费。
复购率分析:
首先,建立透视表,横向是月份、竖向是用户,数据为此用户当月购买次数。
当月购买二次以及二次以上的记为1,购买1次记为0,没有购买记为NaN。
算出当月复购率:
1%都不到,复购率如前面购买次数的结果相互印证。
回购率分析:
当月购买,下月也购买的记为1,没购买的记为0,当月没购买的记为NaN
进而得到回购率
2月份回购的用户为5个,3月份7个。
用户分层:
按照用户的消费行为,我们简单划分成几个维度:新用户、活跃用户、不活跃用户、回流用户。在此,新用户的定义是第一次消费。活跃用户即老客,在某一个时间窗口内有过消费。不活跃用户则是时间窗口内没有消费过的老客。回流用户是在上一个窗口中没有消费,而在当前时间窗口内有过消费。在此分析每天用户的活跃状态,并假设只要有行为就算一次活跃。
首先,建立数据透视表。
以下函数的意思是:当天没有任何行为的,记为unreg;第一次有任何行为,记为new,新用户;后面n天内没有任何行为,记为unactive,不活跃用户;新用户n天后都有行为,记为active,活跃用户;被判定为不活跃用户,又活跃了,记为回流用户。
统计每日的活跃用户、新用户、回流用户、不活跃用户
描述性统计:
可视化:
计算每日回流率:
可视化:
活跃用户:
用户生命周期:
找到用户购买过记录中,最近和最早时间之差。
计算平均生命周期:
平均生命周期1天都不到,是因为0天的用户过多,在此排除掉这些。
一共29个用户,平均生命周期为19天,最大周期为62天。
留存率分析:
之前求出每个用户最早购买记录,和销售表进行连接匹配。
时间分割:
计算每个时间分割后的个数:
计算用户每次的消费间隔,并排除消费间隔为0的用户:
描述统计: