用户消费数据分析,基于python

Posted Steph LL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户消费数据分析,基于python相关的知识,希望对你有一定的参考价值。

 

目录

一、数据的类型处理

1.1 数据加载

 1.2 观察数据

二、按月数据分析

2.1 用户每月花费的总金额

2.2 所有用户每月的产品购买量

2.3 所有用户每月的消费总次数

2.4 统计每月的消费人数

三、用户个体消费数据分析

3.1 用户消费总金额和消费总次数的统计描述

3.2 用户消费金额和消费产品数量的散点图

3.3 各个用户消费总金额的直方分布图

3.4 各个用户消费的总数量的直方分布图

四、用户消费行为分析 

4.1 用户第一次消费的月份分布和人数统计

4.2 用户最后一次消费的月份分布和人数统计

4.3 新老客户的占比 

4.4 用户分层

4.4.1 分析得出每个用户的总购买量、总消费金额、最近一次消费的时间表格rfm

4.4.2 RFM模型指标计算

五、用户的生命周期

5.1 统计每个用户每个月的消费次数

5.2 统计每个用户每个月是否消费,消费记录为1否则记录为0

5.3 判断用户活跃度

5.4 每月不同活跃用户的计数


数据源:采集了大概7万条用户消费记录,4列(id,消费时间,购买数量,消费金额)

一、数据的类型处理

1.1 数据加载

1.2 观察数据

查看数据类型,检查是否存在空值

转换为时间类型

 查看数据的统计描述

添加列表示月份

二、按月数据分析

2.1 用户每月花费的总金额

用分组聚合操作

 绘制曲线图

2.2 所有用户每月的产品购买量

2.3 所有用户每月的消费总次数

聚合时用到count()统计数据的行数

2.4 统计每月的消费人数

需要用到去重操作unique(),nunique()统计去重后的元素个数

三、用户个体消费数据分析

3.1 用户消费总金额和消费总次数的统计描述

3.2 用户消费金额和消费产品数量的散点图

3.3 各个用户消费总金额的直方分布图

3.4 各个用户消费的总数量的直方分布图

四、用户消费行为分析 

4.1 用户第一次消费的月份分布和人数统计

 统计Series中或者说DataFrame某列中的各元素出现的次数用到value_counts()

 绘制线形图

4.2 用户最后一次消费的月份分布和人数统计

4.3 新老客户的占比 

 agg():分组之后进行多种指定形式的聚合

再对这两行数据即可求出占比 

4.4 用户分层

4.4.1 分析得出每个用户的总购买量、总消费金额、最近一次消费的时间表格rfm

用到透视表pivot_table

aggfunc的作用就是对哪些列做对应的什么聚合操作,因此是以字典的形式赋值,并且这里因为要对三列分别做不同的聚合操作,所以用透视表很合适。

4.4.2 RFM模型指标计算

F和M指标已计算出,下面只需计算R指标。

将days去掉

删除无用列,修改列索引

运用到了apply()函数和map()函数的自定义运算功能

apply()是DataFrame的一个运算工具,map()是Series的一个运算工具

五、用户的生命周期

——将用户划分为活跃用户和其他用户

5.1 统计每个用户每个月的消费次数

用到透视表pivot_table

 将NaN转为‘0’,用到fillna()

5.2 统计每个用户每个月是否消费,消费记录为1否则记录为0

注意applymap()和apply()的区别(见本章开头图红框)

这里需要对5.1中的df里每个元素进行操作,因此使用applymap()

5.3 判断用户活跃度

 df.apply()返回的是Series,这个Series里面的每个元素就是active_status函数返回的status列表

下面将上述结果填充回DataFrame之中

 

优化:可以一开始就不用apply,而是用applymap,对每个元素进行操作,直接返回一个DataFrame 

5.4 每月不同活跃用户的计数

 转置一下,方便查看

以上是关于用户消费数据分析,基于python的主要内容,如果未能解决你的问题,请参考以下文章

用户消费行为分析

概念+实战讲解!一文带你了解RFM模型kaggle项目实战分享数据分析

python数据分析项目:用户消费行为分析

Python pandas:连接列查找

RFM用户分层模型|原理+Python全流程实现

RFM用户分层模型|原理+Python全流程实现