河南南阳收割机被堵事件:官员缺德,祸患无穷

极目新闻领导公开“记者毕节采访被打”细节:他们打人后擦去指纹

突发!员工跳楼!只拿低保工资!央企设计院集体罢工!

退休后的温家宝

突发!北京某院集体罢工!

生成图片,分享到微信朋友圈

自由微信安卓APP发布,立即下载! | 提交文章网址
查看原文

用户分析与RFM模型实战|一个可以写在简历上的项目(上)

以下文章来源于Follow A Select ,作者俩南

哈喽大家好,我是可乐。


今天给大家分享一个RFM模型的实战项目


方法论总结的文章难以避免有枯燥晦涩、不易理解的缺点,因此这篇文章在方法论的基础上希望通过真实数据和项目实战帮助你更好理解用户分层~


同时,近期有不少朋友后台私信我说没有相关数据分析实习,在找第一份实习/工作时,简历上完全不知道写什么,所以希望这篇文章也可以帮你丰富简历~


本文结构速览:


因为内容过多,影响阅读,将本文拆分成上下两部分,上篇讲解数据预处理和用户基础维度分析的代码和结果,下篇讲解产品分析和用户分层的代码和结论~


标准的数据分析报告应该将结论前置:


主要结论🎖

1、数据结论:

  • 清洗完的数据共53w条,15个字段;

2、用户基础维度分析:

  • 地域维度分析:广东、上海、北京三个城市购买人数最多北京、上海、海南、天津四个城市的购买率最高;

  • 男女性别在购买金额和购买频次上均差异不大;

  • 35-40岁的人群购买力最弱;

  • 购买0元商品的用户为中奖和赠品导致,不影响数据结果;


# 1 数据预处理 #


本文数据处理和分析需要用到pandas、numpy、matplotlib等软件包,所以需要将需要的软件包导入:



先来查看一下数据的基本情况:



数据共有56w行11列,数据量还是比较大的,这也是为什么能将此报告在简历上的原因之一。


数据包含11个字段,分别为:


1 event_time 下单时间 2 order_id 订单编号 3 product_id 产品编号 

4 category_id 类别编号 5 category_code 类别 6 brand 品牌 7 price 价格 

8 user_id 用户编号 9 age 年龄 10 sex 性别 11 local 省份


看一下数据的大致长相:


了解了数据的基本情况之后,需要对数据进行预处理工作。


1.1 日期数据处理

原数据中,日期(event_time)格式为精确到秒的时间格式,为了方便后续分析,需要将时间处理成日期列、月份、周几的形式:



1.2 缺失数据处理


发现数据中category_code(产品品类)和brand(品牌)两列存在数据缺失,因为产品品类缺失的比较多,直接用‘M’来替代缺失值;而brand缺失比较少,不会对结果产生影响,直接删除缺失值;



1.1  重复数据处理

查看数据是否存在重复:

存在634条重复数据,但是真实的销售数据中可能存在一个用户在同天下单两次或多次的情况,所以这里的处理方法是增加购买数量和总价格的列,而不对重复值直接删除处理;



1.4 异常数据处理

对于数值型的数据,分别查看10分位、25分位、75分位、99分位数,查看是否有异常情况:


以上7个字段均无异常情况:price和amount最小值为0,可能是免费商品或者赠品,不属于异常情况;


同时查看其他数据是否存在异常情况:


发现日期中存在“1970-01-01”的数据,应该是异常数据,予以删除;





数据清洗已基本完成,再次查看一下数据的基本情况:


现在数据共有15列,53w条,且无空数据。



# 2  用户基础维度分析 #




用户基础维度分析包括地域维度、年龄维度、性别维度、购买0元商品的用户等维度进行分析。

2.1 地域维度分析


地域维度分析结论:

  • 购买该电子产品的用户集中分布在广东、上海、北京、江苏、海南、四川、浙江、湖北、重庆、天津和湖南十个城市,其中广东、上海、北京数量最多;

  • 以2021年人口普查数据为基数,北京、上海、海南、天津四个城市的购买率最高,广东由于人口基数大,购买率反而较低;



注:2021人口普查数据来源于国家统计局 http://www.stats.gov.cn/tjsj/tjgb/rkpcgb/qgrkpcgb/202106/t20210628_1818822.html


2.2 性别维度分析

性别维度分析结果:

  • 男女性别购买次数较为均衡,不一定男生才是「电子发烧友」;

  • 男女购买金额和下单次数也没有明显差异;



2.3 年龄维度分析

年龄维度分析包括年龄分布和不同年龄消费差异两个维度分析:

  • 从年龄分布来看,各个年龄段的分布较为平均,其中20-25岁人群稍多;

  • 35-40岁的用户贡献的消费金额和订单数量都是最低的,其他年龄段比较平均,中年人上有老下有小不容易呀;


1、年龄分布


对年龄维度绘制条形图发现年龄分布还是比较均匀的,但是由于年龄过多,导致无法看清楚数据,考虑对年龄进行分箱:



发现各个年龄段的人群较为平均,20-25岁的人群稍多;

2、不同年龄段人群的消费差异

消费差异主要通过消费金额和下单频次来判断


将上述数据可视化:


发现35-40岁人群的消费金额及下单次数都偏低,个人猜测是由于该年龄层的人群固有的属性(上有老下有小,中年危机)导致,其他年龄段人群的消费能力差异不大;


2.4 购买0元商品的用户

还记得我们前面留了个0元商品的彩蛋吗,这里重点关注一下购买0元商品的这群用户的表现~

将这批用户提取出来发现,0元的商品大多为我们前面标记为M的商品,盲猜是由于赠品或者抽奖导致的价格为0;

然后看一下这群用户是否有过消费记录:


这里的30个用户只有一个用户没有产生消费记录,大概率这一个用户是中奖,其他29个用户是赠品导致的价格为0;



由于篇幅原因,本文为「用户分析与RFM模型实战」的上篇,下篇会继续针对此数据对产品维度和用户分层维度进行分析,感兴趣的朋友欢迎持续关注~



为了更好的与读者朋友们交流学习、答疑解惑、资料共享,可乐与其他几个不同领域的大佬合作建立了多个免费社群,群内讨论非常激烈,大佬们也非常热心,问题解决及时!其中包括:


综合交流群:



专业交流群:



完全免费的资料白嫖群:


JOIN US

方式入群


扫描添加可乐微信,并备注需要进入的群,如【入群--白嫖群】、【入群--Excel】,待可乐审核后拉你进群。

文章有问题?点此查看未经处理的缓存