数据依然是来自阿里天池的销售数据,上篇文章有写
下面使用的RFM分析方法的代码主要来自于简书的这篇文章用Python实现RFM模型——互联网产品用户分层必备技巧
本来还想用用其它分析方法的,但是为了彻底理解这篇文章中的代码搞了半天
所以说本来还准备分析的一部分内容如下:如果客户是婴儿的父母,只考虑为了婴儿购买商品的情况下,婴儿出生日期、购买日期以及客户留存时长,以及婴儿在什么年龄段需要购买哪种商品,我觉得是有相关性的,这个相关性分析留在下一篇文章吧
首先还是用Python读取数据,用merge生成新表的时候,自动删除了一部分未匹配到的数据,在数据库连接中应该是内连接的方式就是取两个表格的user_id的交集部分
import
检查数据是否有空值
new_data
结果显示如下
property是商品属性,这一栏对之后的分析作用不大,先删去,生成一个新表名称为shopping_data,并且检查该表格是否有空值,重复值,结果显示都没有
shopping_data
通过上次的描述统计发现最晚购买商品的人是在2015年2月,所以最近一次购买时间就定为2015年3月1日减去购买时间,然后求RFM,求RFM主要使用了groupby和agg函数,groupby函数就是按照user_id分别对最近一次购买时间、购买行为以及购买数量分类(本来应该用购买金额的,但是没有,就用购买数量代替了);agg函数就是对groupby分类的数据进行取值,min代表最小值,count代表总次数,sum代表总数量;最后用jion函数合并3个列
shopping_data
然后,我事先看了一下数据,总计消费频次和总计消费数量为1的占了很大一部分,所以就只对最近一次消费进行了分数分类(还有一个原因就是数据右偏分布明显)
bins
对F和M用的是一般分类,右偏明显所以分类稍微在左边分的紧凑一些,右边分散一些
bins
数据大致展示如下
最后就进行了客户分类
RFM_model
因为一直没搞懂怎么用matplotlib.pyplot这个包显示中文,所以最后还是把数据导出后,做了汇总以后做了一个饼图