python groupby agg_用Python整理销售数据

数据依然是来自阿里天池的销售数据,上篇文章有写

下面使用的RFM分析方法的代码主要来自于简书的这篇文章用Python实现RFM模型——互联网产品用户分层必备技巧

本来还想用用其它分析方法的,但是为了彻底理解这篇文章中的代码搞了半天

所以说本来还准备分析的一部分内容如下:如果客户是婴儿的父母,只考虑为了婴儿购买商品的情况下,婴儿出生日期、购买日期以及客户留存时长,以及婴儿在什么年龄段需要购买哪种商品,我觉得是有相关性的,这个相关性分析留在下一篇文章吧

首先还是用Python读取数据,用merge生成新表的时候,自动删除了一部分未匹配到的数据,在数据库连接中应该是内连接的方式就是取两个表格的user_id的交集部分

import 

检查数据是否有空值

new_data

结果显示如下

v2-9475a21a90aaded4743334de1be25f48_b.jpg

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 

数据大致展示如下

v2-a12ef578beb0248d93fa18bb3d1a55a9_b.jpg

最后就进行了客户分类

RFM_model

因为一直没搞懂怎么用matplotlib.pyplot这个包显示中文,所以最后还是把数据导出后,做了汇总以后做了一个饼图

v2-77dd1256426c8c394e960ffeffc2e69c_b.jpg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值