Python 的客群分群
Karolis Urbonas
Head of Data Science, Amazon
online 資料集。TotalSum 欄位 = Quantity × UnitPrice。
我們從已前處理的 online DataFrame 開始,僅包含最近 12 個月的資料:
print('Min:{}; Max:{}'.format(min(online.InvoiceDate),
max(online.InvoiceDate)))
Min:2010-12-10; Max:2011-12-09
接著建立一個假設的 snapshot_day,模擬最近進行分析的狀態。
snapshot_date = max(online.InvoiceDate) + datetime.timedelta(days=1)
# 以客戶層級彙總資料 datamart = online.groupby(['CustomerID']).agg({ 'InvoiceDate': lambda x: (snapshot_date - x.max()).days, 'InvoiceNo': 'count', 'TotalSum': 'sum'})# 重新命名欄位,方便解讀 datamart.rename(columns = {'InvoiceDate': 'Recency', 'InvoiceNo': 'Frequency', 'TotalSum': 'MonetaryValue'}, inplace=True)# 檢查前幾列 datamart.head()
RFM 分群所需的表格已完成!

Python 的客群分群