目录
4.4.1 分析得出每个用户的总购买量、总消费金额、最近一次消费的时间表格rfm
5.2 统计每个用户每个月是否消费,消费记录为1否则记录为0
数据源:采集了大概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 每月不同活跃用户的计数
转置一下,方便查看