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

更新 發佈閱讀 7 分鐘

上一篇我們把消費次數、消費金額、最近一次的購買的距離天數,的資料整理完成後,我們要來將上面的資料分別轉為5個級距。

收先我們須要找出消費次數、消費金額、最近一次的購買的距離天數的最大值,並將數值列印出來。如圖1

customer_recency_max = customer_summary['最近一次的下單天數'].max()
customer_Frequency_max = customer_summary['消費次數'].max()
customer_Sales_max = customer_summary['消費總金額'].max()
print("最大的下單天數:", customer_recency_max)
print("最大的消費次數:", customer_Frequency_max)
print("最大的消費金額:", customer_Sales_max)
圖1

圖1

再根據找出的最大值去分成5個級距,r_bins 填入分類資料的數值區間,r_labels填入對應的級距,以下面的程式碼舉例:如果最近一次的下單天數為"19天",那就會被分為第5級,如果天數為"22天"就會被分為第4級,以此類推,其他的消費次數跟消費總金額也是一樣的方式去做分類。並將結果儲存到新增的R、F、M欄位。

r_bins = [0, 19, 38, 57, 76, 95]
r_labels = ['5', '4', '3', '2', '1']
customer_summary['R'] = pd.cut(customer_summary['最近一次的下單天數'], bins=r_bins, labels=r_labels)

f_bins = [0,1,2,3,4,5]
f_labels = ['1', '2', '3', '4', '5']
customer_summary['F'] = pd.cut(customer_summary['消費次數'], bins=f_bins, labels=f_labels)

m_bins = [0,500,1000,2000,3000,14055]
m_labels = ['1', '2', '3', '4', '5']
customer_summary['M'] = pd.cut(customer_summary['消費總金額'],bins=m_bins, labels=m_labels)

分類完成後再將R、F、M的值轉成數值

customer_summary['R'] = customer_summary['R'].astype(int)
customer_summary['F'] = customer_summary['F'].astype(int)
customer_summary['M'] = customer_summary['M'].astype(int)

再來就是將每個客戶的RFM分成下面8種類型的客戶
1.RFM分數-高高高-重要價值客戶
2.RFM分數-低高高-重要保持客戶
3.RFM分數-高低高-重要發展客戶
4.RFM分數-高低低-一般發展客戶(新客戶)
5.RFM分數-低低高-重要挽留客戶
6.RFM分數-高高低-一般價值客戶
7.RFM分數-低高低-一般保持客戶
8.RFM分數-低低低-一般挽留客戶

根據上面的分數來寫一個顧客分類函數,這邊我是用第3級作為判斷的依據,
大於3就是屬於高,低於3就是屬於低
舉例:'R'、'F'、'M'欄的分數都大於3就歸類為【重要價值客戶】,以此類推

最後再新增一欄顧客類別,將對應的顧客類別新增到相對應的客戶ID,並儲存成EXCEL

# 定義顧客分類函數
def classify_customer(row):
    if row['R'] >= 3 and row['F'] >= 3 and row['M'] >= 3:
        return '重要價值客戶'
    elif row['R'] <= 3 and row['F'] >= 3 and row['M'] >= 3:
        return '重要保持客戶'
    elif row['R'] >= 3 and row['F'] <= 3 and row['M'] >= 3:
        return '重要發展客戶'
    elif row['R'] >= 3 and row['F'] <= 3 and row['M'] <= 3:
        return '一般發展客戶(新客戶)'
    elif row['R'] <= 3 and row['F'] <= 3 and row['M'] >= 3:
        return '重要挽留客戶'
    elif row['R'] >= 3 and row['F'] >= 3 and row['M'] <= 3:
        return '一般價值客戶'
    elif row['R'] <= 3 and row['F'] >= 3 and row['M'] <= 3:
        return '一般保持客戶'
    elif row['R'] <= 3 and row['F'] <= 3 and row['M'] <= 3:
        return '一般挽留客戶'
    else:
        return '其他'



# 新增一列 '顧客類別'
customer_summary['顧客類別'] = customer_summary.apply(classify_customer, axis=1)
# 將計算結果寫入 Excel 檔案
customer_summary.to_excel('RFM分析.xlsx', index=False)

下面為EXCEL的顯示畫面

圖二

圖二

下一篇會教如何將消費次數、消費金額、最近一次的購買的距離天數,做成圖表


留言
avatar-img
Daniel Huang的沙龍
0會員
2內容數
這邊會放有關於數據分析、流程自動化、python相關的文章,希望可以幫助到上班族、零售業、中小企業、電商,讓你們在工作上更有效率
你可能也想看
Thumbnail
賽勒布倫尼科夫以流亡處境回望蘇聯電影導演帕拉贊諾夫的舞台作品,以十段寓言式殘篇,重新拼貼記憶、暴力與美學,並將審查、政治犯、戰爭陰影與「形式即政治」的劇場傳統推到台前。本文聚焦於《傳奇:帕拉贊諾夫的十段殘篇》的舞台美術、音樂與多重扮演策略,嘗試解析極權底下不可言說之事,將如何成為可被觀看的公共發聲。
Thumbnail
賽勒布倫尼科夫以流亡處境回望蘇聯電影導演帕拉贊諾夫的舞台作品,以十段寓言式殘篇,重新拼貼記憶、暴力與美學,並將審查、政治犯、戰爭陰影與「形式即政治」的劇場傳統推到台前。本文聚焦於《傳奇:帕拉贊諾夫的十段殘篇》的舞台美術、音樂與多重扮演策略,嘗試解析極權底下不可言說之事,將如何成為可被觀看的公共發聲。
Thumbnail
柏林劇團在 2026 北藝嚴選,再次帶來由布萊希特改編的經典劇目《三便士歌劇》(The Threepenny Opera),導演巴里・柯斯基以舞台結構與舞台調度,重新向「疏離」進行提問。本文將從觀眾慾望作為戲劇內核,藉由沉浸與疏離的辯證,解析此作如何再次照見觀眾自身的位置。
Thumbnail
柏林劇團在 2026 北藝嚴選,再次帶來由布萊希特改編的經典劇目《三便士歌劇》(The Threepenny Opera),導演巴里・柯斯基以舞台結構與舞台調度,重新向「疏離」進行提問。本文將從觀眾慾望作為戲劇內核,藉由沉浸與疏離的辯證,解析此作如何再次照見觀眾自身的位置。
Thumbnail
本文深入解析臺灣劇團「晃晃跨幅町」對易卜生經典劇作《海妲.蓋柏樂》的詮釋,從劇本歷史、聲響與舞臺設計,到演員的主體創作方法,探討此版本如何讓經典劇作在當代劇場語境下煥發新生,滿足現代觀眾的觀看慾望。
Thumbnail
本文深入解析臺灣劇團「晃晃跨幅町」對易卜生經典劇作《海妲.蓋柏樂》的詮釋,從劇本歷史、聲響與舞臺設計,到演員的主體創作方法,探討此版本如何讓經典劇作在當代劇場語境下煥發新生,滿足現代觀眾的觀看慾望。
Thumbnail
《轉轉生》為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,融合舞蹈、音樂、時尚和視覺藝術,透過身體、服裝與群舞結構,回應殖民歷史、城市經驗與祖靈記憶的交錯。本文將從服裝設計、身體語彙與「輪迴」的「誕生—死亡—重生」結構出發,分析《轉轉生》如何以當代目光,形塑去殖民視角的奈及利亞歷史。
Thumbnail
《轉轉生》為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,融合舞蹈、音樂、時尚和視覺藝術,透過身體、服裝與群舞結構,回應殖民歷史、城市經驗與祖靈記憶的交錯。本文將從服裝設計、身體語彙與「輪迴」的「誕生—死亡—重生」結構出發,分析《轉轉生》如何以當代目光,形塑去殖民視角的奈及利亞歷史。
Thumbnail
題目敘述 題目會給我們一張Activity資料表,裡面分別有user_id、 session_id、activity_date 、activity_type等欄位。 要求我們列出所有過去30天的活躍使用者。 活躍使用者的定義為2019-07-27包含這天,往前三十天的區間內,至少有過一次活動紀錄
Thumbnail
題目敘述 題目會給我們一張Activity資料表,裡面分別有user_id、 session_id、activity_date 、activity_type等欄位。 要求我們列出所有過去30天的活躍使用者。 活躍使用者的定義為2019-07-27包含這天,往前三十天的區間內,至少有過一次活動紀錄
Thumbnail
題目敘述 題目會給我們一張Customer資料表,裡面分別有id、name、referee_id 等欄位,其中id 是主鍵Primary Key。 要求我們列出所有推薦人ID referee_id不等於2的顧客,印出順序不拘。
Thumbnail
題目敘述 題目會給我們一張Customer資料表,裡面分別有id、name、referee_id 等欄位,其中id 是主鍵Primary Key。 要求我們列出所有推薦人ID referee_id不等於2的顧客,印出順序不拘。
Thumbnail
這道題你一定會解,但你知道怎麼把迴圈改寫成「迭代」嗎?這招學起來!
Thumbnail
這道題你一定會解,但你知道怎麼把迴圈改寫成「迭代」嗎?這招學起來!
Thumbnail
sort reverse count index copy len min max sum any all
Thumbnail
sort reverse count index copy len min max sum any all
Thumbnail
以一個雜魚測試工程師的角度來看int應用場景
Thumbnail
以一個雜魚測試工程師的角度來看int應用場景
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News