開始使用免費開始

計算 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())
編輯並執行程式碼