用Python分析用户消费行为

Python09

用Python分析用户消费行为,第1张

-- 对数据进行描述性统计

可知用户平均每笔订单购买2.4个商品,中位数为2,75分位数为3,说明绝大部分订单的购买量都不多。

但是最大值为99个,数字偏高。

一般来说,根据二八法则,20%的用户贡献的收入会占总收入的80%。

-- 将order_dt改为可计算的时间字符类型并将消费频次按月计算

查看更改以后的数据

(1)每月的消费总金额

(2)每月的用户消费次数

(3)每月的产品购买量

(4)每月的消费人数

(1)对每月的消费总金额绘制折线图分析

由图可知,用户发生购买行为多在1-3月,从四月份以后,消费较为稳定呈轻微下降趋势

(2)对每月消费人数绘制折线图分析

前三个月消费订单次数在10000次接近12000次,后续每月消费次数则在2500次

(3)对每月产品购买量绘制折线图分析

前三个月物品购买量约为25000元,后续月份则保持在7000元左右

(4)对每月的消费人数绘制折线图分析

前三个月每月的消费人数在8000-10000之间,后续月份,平均消费人数在2000不到

(1)用户消费金额,消费次数的秒速统计

(2)用户消费金额和消费次数的散点图

(3)用户消费金额的分布图

(4)用户累计消费金额占比(百分之多少的用户占了百分之多少的消费额)

(1)对用户金额及消费次数绘制散点图分析

过滤掉极值

(3)对用户消费金额作直方图分析

由图可知用户消费金额,绝大部分呈现集中趋势,小部分异常值干扰了判断,可以使用过滤操作排除异常值

(4)对用户累计消费金额占比作折线图分析

由图可知50%的用户仅贡献了15%的消费额度,而排名前5000的用户就贡献了40%的消费额度

(1)用户第一次消费(首购)

(2)用户最后一次消费

(3)新老客户消费比

        ①多少用户仅消费一次

        ②每月新客占比

(4)用户分层

        ① RFM模型

        ②新、老、活跃、回流、流失

(5)用户购买周期(按订单)

        ①用户消费周期描述

        ②用户消费周期分布

(6)用户生命周期(按第一次和最后一次消费) -用户生命周期描述

        ①用户生命周期分布

(7)复购率和回购率分析

(1)(2)对用户第一次及最后一次消费进行分析

大多数人最后一次购买时间都在1-3月份,说明他们购买了一次就不再进行购买,随着时间的递增,最后一次购买数量也在递增,消费呈现流失上升的状况。用户流失比例基本一致,一开始用户迅猛增长数量比较多流失的也比较多。

(3)对新老客消费比进行分析

取每个用户首次和最后一次购买时间

查询只进行过一次购买的用户人数

由图可知,将近一半的用户仅仅消费了一次,新老客户占比接近1:1

(4)RFM模型

RFM模型的三个指标为最近一次消费时间、消费频率 、消费金额 

绘制透视图表进行分析

要将order_dt里面具体的日期变成R中的天数

再将order_amount和order_products重命名为F、M

对用户进行分群(8个)

将RFM中的数值换为容易理解的文字

对重要价值客户及非重要价值客户的消费时间、消费频率绘制散点图

(4)对用户生命周期 新客,活跃,回流,流失进行分析

从上图中可以看到,表中数据有0,1,2···,要将有消费的变为1,没有消费变为0

这里由于进行数据透视,填充了一些 null 值为0,而实际可能用户在当月根本就没有注册,这样会误导第一次消费数据的统计。

将自定义函数运用到数据中

将未注册的替换为空值,这样 count 计算时不会计算到,从而得到每个月的用户分布

对这些用户做面积图分析

(5)用户购买周期 对用户消费周期进行分析

计算相邻两个订单的时间间隔,用shift 函数,shift函数是对数据进行错位,所有数据会往下平移一下,可以计算

以用户分组,对两个订单的间隔进行计算

NaT表示只有一次购买

对时间间隔进行描述性统计分析

去除days并绘制直方图

用户的平均购买周期是68天,绝大部分用户的购买周期都低于100天

(6)对用户生命周期(按第一次和最后一次消费)

描述性分析

去除days并绘制直方图

用户的生命周期受只购买一次的用户影响比较厉害,所以要对用户进行筛选

(7)复购率和回购率分析

复购率:自然月内,购买多次的用户占比(即,购买了两次以上)

回购率:曾经购买过的用户在某一时期的再次购买的占比(可能是在三个月内)

复购率稳定在20%所有,前一个月因为有大量新用户涌入,而这批用户只购买了一次,所以导致复购率降低

b=['123','a','456','a','789','b']

a={}

for i in range(1,len(b)/2+3,2):

if a.has_key(b[i]):

a[b[i]]=str(int(a[b[i]])+int(b[i-1]))

else:

a[b[i]]=b[i-1]

print a

为了创造更多利润、实现数据驱动运营,某CD网站拟对18个月以来的近7万条消费数据进行分析。具体的研究思路如下:

新增['month']列,便于后续按月分析。

重新查看,此时的时间列已转换为正常格式。

由上图可知,

接下来我们用之前清洗好的字段进行数据分析。

前三个月消费订单数在10000笔左右,后续月份的平均则在2500笔。

前三个月产品购买数在20000以上,后续月份的产品购买量在6000~8000左右 。

前三个月每月的消费人数在8000-10000之间,后续月份平均消费人数在2000人不到

上述消费趋势的分析可以通过数据透视表分析(不建议数据透视表进行去重操作)

本章小结——

趋势分析:总体来看,消费总金额、消费次数、产品购买量、消费人数的趋势想似:均先上升、下跌、趋于平稳并下降。

可以看出网站的流失用户在增加,采用开源(拉新)节流(留存)的运营方式,来增加销售收入。

上一部分是按月分析,主要看趋势;本部分按用户个体分析,来看消费能力。

按用户消费金额进行降序排列,由图可知,共计约25000个用户:

启发,只要维护好这5000个用户(占比20%)就可以把业绩KPI完成70%,如果能把5000个用户运营的更好就可以占比更高。

通过以上基本数据描述分析可以清楚该网站整体的消费趋势和用户消费能力,现在进一步挖掘用户消费行为数据,通过RFM模型、生命周期等方法对用户进行分层,为后续运营管理提供依据。

首购可以进一步依渠道划分,衡量不同渠道的差异性,从而量化渠道能力,为后期渠道优化提供依据。

用户第一次购买分布,集中在前三个月(1997年1-3月);其中,在2月11日至2月25日有一次剧烈波动

由图可知,1997年1-4月新用户数量由90%跌落至80%以下;之后几个月的新用户量保持在80~82%区间。

RFM是一个经典的用户分类模型,模型利用通用交易环节中最核心的三个维度——最近消费(Recency)、消费频率(Frequency)、消费金额(Monetary)细分用户群体,从而分析不同群体的用户价值,最终达到精准营销。

RFM从3个维度、分2个等级(均值)得到8类用户分层。

通过RFM模型,把用户分为8个类别,分别给用户打标签、将客户分为重要价值、重要保持、重要挽留、重要发展、一般价值、一般保持、一般保留、一般发展8类客户。

从RFM分层可知,本网站的大部分用户为一般挽留客户(可适当放弃这部分低价值客户、也可进一步提高活跃度)、重要保持客户(企业优质的客户群,采用会员制运营)。具体运营策略依据参照如下:

为了避免划分用户群体过多(RFM从3个维度、分2个等级得到8类用户分层的数据立方),可能导致针对性的营销成本负担上升;下面将通过聚类方法,基于RFM模型划分成4类用户,更快实现后期用户管理。

显然,归一化预处理后,当n=2时,轮廓系数取最大值0.79,仅从模型聚类效果来讲分2类合适;而标准正态化预处理后显示,分4类的轮廓系数最大,达0.6964(但2-7类的轮廓系数整理差别波动不大)

参考漏斗模型,针对每个用户,按18个月内的每个月对用户情况进行分类,即新用户、活跃用户、回流用户、流失用户。

通过下面的数据透视表即可得到每个用户每个月的购买情况,从而进行转化分析。

若本月无消费(即为0)

若本月有消费(即为1)

由上表可知,每月的用户消费状态变化