RFM用户分层(pandas)

RFM模型用于评估用户价值,包括最近一次消费时间间隔(Recency)、消费频率(Frequency)和消费金额(Monetary)。本文通过Pandas详细讲解如何构建RFM模型,计算R、F、M值并进行评分,最后进行归一化和标签化,帮助运营人员实施精细化运营策略。
摘要由CSDN通过智能技术生成

RFM是典型的用户分层方法,是评估用户消费能力、衡量用户贡献价值的重要工具。RFM代表的是最近一次消费时间间隔(Recency)、消费频率(Frequency)和消费金额(Monetary)。本案例将利用Pandas建立用户消费RFM模型,实现精细化运营。

首先构造数据,并进行数据类型转换:

import pandas as pd
import faker
f=faker.Faker('zh-cn')
df=pd.DataFrame({'用户':[f.name() for i in range(20000)],
                '购买日期':[f.date_between(start_date='-1y',end_date='today') for i in range(20000)],
                '金额':[f.random_int(10,100) for i in range(20000)]})
df

'''
	用户	购买日期	金额
0	邓涛	2022-05-11	31
1	周丽华	2023-03-22	28
2	董琴	2022-12-04	64
3	李娟	2022-05-26	100
4	王伟	2022-12-27	95
...	...	...	...
19995	李红梅	2022-05-03	56
19996	花俊	2022-07-09	74
19997	吴琳	2023-03-19	20
19998	陈磊	2022-07-24	14
19999	余淑华	2022-10-30	33
20000 rows × 3 columns
'''
df=df.astype({'购买日期':'datetime64[ns]'})
df.dtypes

'''
用户              object
购买日期    datetime64[ns]
金额               int64
dtype: object
'''

以上构造了两万条用户消费记录,有用户名、购买时间和金额,且交易时间在近一年内,交易金额在10~100元之间。

首先来计算R值。R为最后一次购买时间距今天的天数,R值越大代表用户越有可能处于沉睡状态,流失风险越大:

r=(
    df.groupby('用户')
    .apply(lambda x:(pd.Timestamp('today')-x['购买日期'].max()))
    .dt
    .days
)
r

'''
用户
丁丹     151
丁丹丹    235
丁丽丽     21
丁丽娟    192
丁健       9
      ... 
龚红梅    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值