计算 RFM 数值
为之前使用过的 online 数据集计算最近一次购买(Recency)、购买频率(Frequency)和货币价值(Monetary)——该数据集已为您加载,包含最近 12 个月的数据。online 数据集中已有一列 TotalSum,它由 Quantity 与 UnitPrice 相乘得到:online['Quantity'] * online['UnitPrice']。
此外,我们已创建变量 snapshot_date,可用于计算 Recency。您可以在控制台打印 online 数据集和 snapshot_date。pandas 库已以 pd 导入,datetime 以 dt 导入。
本练习是课程的一部分
Python 中的客户细分
练习说明
- 按顺序为每位客户计算 Recency、Frequency 和 Monetary 值。
- 对 Recency——计算
snapshot_date与InvoiceDate的max值之间的差。 - 将列重命名为 Recency、Frequency 和 MonetaryValue。
- 打印
datamart的前 5 行表头。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Calculate Recency, Frequency and Monetary value for each customer
datamart = online.groupby(['CustomerID']).agg({
'InvoiceDate': lambda x: (snapshot_date - x.____()).days,
'InvoiceNo': '____',
'TotalSum': '____'})
# Rename the columns
datamart.rename(columns={'InvoiceDate': '____',
'InvoiceNo': '____',
'TotalSum': '____'}, inplace=True)
# Print top 5 rows
print(____.head())