2023-08-18|閱讀時間 ‧ 約 4 分鐘

本篇教你如何輕鬆運用PYTHON讓你找到專屬的VIP客戶---第一篇

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的檔名

圖3

excel的格式會如圖3一樣,這個檔案也可以用excel去進行級距的換算

下一篇會教如何將資料轉換成5個級距

分享至
成為作者繼續創作的動力吧!
這邊會放有關於數據分析、流程自動化、python相關的文章,希望可以幫助到上班族、零售業、中小企業、電商,讓你們在工作上更有效率
從 Google News 追蹤更多 vocus 的最新精選內容從 Google News 追蹤更多 vocus 的最新精選內容

發表回應

成為會員 後即可發表留言
© 2024 vocus All rights reserved.