計算 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())