用Python实现RFM计算案例,输出RFM得分数据,数据保存在文件sales.xlsx中,
时间: 2024-04-18 13:28:27 浏览: 93
下面是一个用Python实现RFM计算的案例,并将RFM得分数据保存在文件sales.xlsx中的示例代码:
```python
import pandas as pd
# 读取销售数据
df = pd.read_excel('sales.xlsx')
# 计算Recency(最近一次购买时间)
recency = pd.to_datetime('2022-01-01') - df['购买日期']
df['Recency'] = recency.dt.days
# 计算Frequency(购买频率)
frequency = df.groupby('客户ID')['购买日期'].count()
df = df.merge(frequency, on='客户ID', suffixes=('', '_frequency'))
# 计算Monetary(消费金额)
monetary = df.groupby('客户ID')['消费金额'].sum()
df = df.merge(monetary, on='客户ID', suffixes=('', '_monetary'))
# 对Recency、Frequency、Monetary进行分段打分
recency_bins = pd.qcut(df['Recency'], q=5, labels=False)
frequency_bins = pd.qcut(df['购买日期_frequency'], q=5, labels=False)
monetary_bins = pd.qcut(df['消费金额_monetary'], q=5, labels=False)
# 计算RFM得分
df['R'] = recency_bins.apply(lambda x: 5 - x)
df['F'] = frequency_bins + 1
df['M'] = monetary_bins + 1
# 保存RFM得分数据到文件sales.xlsx
df[['客户ID', 'R', 'F', 'M']].to_excel('sales.xlsx', index=False)
```
这段代码假设销售数据已经存储在名为'sales.xlsx'的文件中,其中包含列名为'购买日期'、'消费金额'和'客户ID'的数据。代码会计算每个客户的Recency、Frequency和Monetary指标,并根据这些指标进行分段打分,最后将RFM得分数据保存在文件sales.xlsx中的'客户ID'、'R'、'F'和'M'列中。你可以根据实际需求对代码进行调整和优化。
阅读全文