Python实现RFM模型
时间: 2023-11-05 13:44:43 浏览: 102
RFM模型是一种常用的客户分析模型,用于评估客户的价值和重要性。下面是一个简单的Python实现RFM模型的示例:
```python
import pandas as pd
# 读取订单数据
df = pd.read_excel('sales.xlsx')
# 计算最近购买日期、购买频率和消费金额
rfm_data = df.groupby('会员ID').agg({
'最近购买日期': lambda x: (df['最近购买日期'].max() - x.max()).days,
'购买频率': 'count',
'消费金额': 'sum'
}).rename(columns={
'最近购买日期': 'R',
'购买频率': 'F',
'消费金额': 'M'
})
# 对R、F、M进行分段打分
rfm_data['R_score'] = pd.cut(rfm_data['R'], bins=[-float('inf'), 30, 60, 90, float('inf')], labels=[4, 3, 2, 1], right=False)
rfm_data['F_score'] = pd.cut(rfm_data['F'], bins=[-float('inf'), 1, 2, 3, float('inf')], labels=[1, 2, 3, 4], right=False)
rfm_data['M_score'] = pd.cut(rfm_data['M'], bins=[-float('inf'), 1000, 2000, 3000, float('inf')], labels=[1, 2, 3, 4], right=False)
# 计算RFM得分
rfm_data['RFM_score'] = rfm_data['R_score'].astype(str) + rfm_data['F_score'].astype(str) + rfm_data['M_score'].astype(str)
# 打印RFM得分数据
print(rfm_data)
# 将RFM得分数据写入Excel文件
rfm_data.to_excel('rfm_scores.xlsx')
```
上述代码假设你的订单数据保存在名为'sales.xlsx'的Excel文件中,并且包含'会员ID'、'最近购买日期'、'购买频率'和'消费金额'等列。代码首先计算最近购买日期(R)、购买频率(F)和消费金额(M),然后对这三个指标进行分段打分,最后计算RFM得分并存储在'RFM_score'列中。打印RFM得分数据并将其写入名为'rfm_scores.xlsx'的Excel文件中。
请根据你的实际数据和需求修改代码中的列名、分段打分方式和文件路径等参数。
阅读全文