开始使用免费开始使用

计算 RFM 数值

为之前使用过的 online 数据集计算最近一次购买(Recency)、购买频率(Frequency)和货币价值(Monetary)——该数据集已为您加载,包含最近 12 个月的数据。online 数据集中已有一列 TotalSum,它由 QuantityUnitPrice 相乘得到:online['Quantity'] * online['UnitPrice']

此外,我们已创建变量 snapshot_date,可用于计算 Recency。您可以在控制台打印 online 数据集和 snapshot_datepandas 库已以 pd 导入,datetimedt 导入。

本练习是课程的一部分

Python 中的客户细分

查看课程

练习说明

  • 按顺序为每位客户计算 Recency、Frequency 和 Monetary 值。
  • 对 Recency——计算 snapshot_dateInvoiceDatemax 值之间的差。
  • 将列重命名为 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())
编辑并运行代码