RFM模型是最基本的分析,可以讓你知道哪些是常客、哪些人是偶爾來一次,或是根本不常來,藉此針對不同的客群去做不同的策略,達到提升業績的方法。接下來就讓我教你如何運用PYTHON快速做出RFM分析
RFM可以分為3個部分:R — 每個顧客最近一次的購買的距離天數、F — 某個時間內的消費次數、M — 某個時間內的消費總金額,最後再根據資料將這3個部分,個別分成5個級距。
這次的使用到的欄位只有--下單日期、顧客ID、銷售金額、訂單編號
import pandas as pd
from datetime import datetime
from IPython.display import display
import numpy as np
data = pd.read_excel("sample_-_superstore.xlsx")#讀取excel
# display(data['Customer ID'])
data['Order Date'] = pd.to_datetime(data['Order Date'])#將 'Order Date' 欄位轉換為日期型別,以便進行日期篩選
start_date = pd.to_datetime('2017-01-01')
end_date = pd.to_datetime('2017-03-31')
print("資料欄位",data.columns)
第8行及第9行,可以根據你要的資料區間去做填寫
第10行的print(“資料欄位”,data.columns),主要是了解這個excel所有所有欄位名稱
filtered_df = data[(data['Order Date'] >= start_date) & (data['Order Date'] <= end_date)]#從訂單清單選出特定時間的資料
filtered_df1 = filtered_df.copy()#建立一個資料的副本,然後對副本進行操作
today = pd.to_datetime('2017-04-01')#這裡我們以2016-04-01減去每個客戶的購買日期
# 以 'Customer ID' 分組,計算消費次數、總消費金額和距離特定日期的天數
customer_summary = filtered_df1.groupby('Customer ID').agg({
'Order Date': lambda x: (today - x.max()).days, # 距離特定日期的天數
'Order ID': 'nunique', # 消費次數
'Sales': 'sum', # 總消費金額
}).reset_index()
# 重新命名資料框的欄位
customer_summary.columns = ['客戶編號', '最近一次的下單天數','消費次數', '消費總金額']
# 將計算結果寫入 Excel 檔案
customer_summary.to_excel('RFM分析1.xlsx', index=False)
將抓取到的資料,做消費次數、消費金額、最近一次的購買的距離天數,並將資料存成excel
第16行customer_summary.to_excel('RFM分析1.xlsx', index=False)
畫底線的部分是可以自行更改的,這邊的名稱是excel的檔名
excel的格式會如圖3一樣,這個檔案也可以用excel去進行級距的換算
下一篇會教如何將資料轉換成5個級距