過去投放廣告較專注在類似受眾、廣泛受眾和針對瀏覽行為進行再行銷,比較少針對消費過受眾進行投放;此次利用 Python 寫出了 NES 模型的程式碼,可以快速計算出 NES 用戶表現,此篇提供程式碼供大家參考。
Table
一. NES模型介紹
NES 模型是為了掌握顧客的消費行為變動性而設計,將客戶分群成為三大類,共五種標籤:
- N =新顧客(New Customer)
- E =既有顧客(Existing Customer)
- E0 主力顧客:購買週期 1 倍時間內回購的人
- E1 瞌睡顧客:超過購買週期 1~2 倍未回購的人
- E2 半睡顧客:超過購買週期 2~3 倍未回購的人
- S =沉睡顧客(Sleeping Customer),購買頻率超過購買週期3倍未回購的人
延伸閱讀:行銷 4P 理論要改寫了?大數據這樣顛覆消費市場!

二. NES模型需準備的會員資料
- OrderId:訂單編號
-
order_date:訂單日期
- TotalCharges:訂單花費
-
UserId1:客戶 Email (此筆資料是方便日後可以進行廣告再行銷)
-
UserId2:客戶 Phone (此筆資料是方便日後可以進行廣告再行銷)
三. 程式碼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
orders['order_date'] = pd.to_datetime(orders['訂單日期']) orders['Recency'] = pd.to_datetime(orders['訂單日期']) nesTable = orders.groupby('顧客').agg({'order_date': lambda x: (x.max()- x.min()).days, # Retention 'Recency': lambda x: (NOW - x.max()).days, #Recency '訂單號碼': lambda x: len(x), # Frequency '付款總金額': lambda x: x.sum(), # Monetary Value '電郵': lambda x: x.min(), #email '電話號碼': lambda x: x.min() #phone }) nesTable['order_date'] = nesTable['order_date'].astype(int) nesTable['Recency'] = nesTable['Recency'].astype(int) nesTable.rename(columns={'order_date': 'total_day', 'Recency': 'recency', '訂單號碼': 'frequency', 'TotalCharges': 'monetary_value', 'UserId1': 'email', 'UserId2': 'phone'}, inplace=True) day = NOW.strftime("%Y-%m") E0 = nesTable[(nesTable["recency"] <= retention)]["recency"].count() E1 = nesTable[(nesTable["recency"] > retention) & (nesTable["recency"] <= retention*2)]["recency"].count() E2 = nesTable[(nesTable["recency"] > retention*2) & (nesTable["recency"] <= retention*3)]["recency"].count() S1 = nesTable[(nesTable["recency"] > retention*3)]["recency"].count() total = nesTable["recency"].count() pList.append([ day, E0, E1, E2, S1,retention,total ]) df = pd.DataFrame(pList) df.columns = ['Day','E0','E1', 'E2', 'S1','retention','total'] |
最後~
除了本篇 Python 快速計算 RFM 模型外,也推薦閱讀此篇用 SQL 指令方式來計算電商分析指標:
- 用戶活躍度指數 MAU / WAU / DAU
- 會員分類 RFM 模型
- 會員分類 NES 模型
- 用戶留存率 Customer Retention Rate
- 數值區間分類貼標籤 Label
- 計算七日平均 Rolling Averages
- 計算累積加總 Cumulative Sum
延伸閱讀
- [數據分析] Python快速計算RFM模型
- 如何利用 QSearch Trend 進行 雙 11 社群分析
- 如何優化 Landing Page到達頁?
- 初心者 電商數據分析指標
- Data Studio 5分鐘打造屬於自己的電商儀表板
- 如何利用 Google 商家 進行分析和優化?
- 如何利用 Google Trend (搜尋趨勢) 挑選爆款商品?
那 [數據分析] Python 快速計算 NES 模型 就到這邊感謝收看感謝收看,如文章內容有誤請不吝指正!
有關 Max行銷誌的最新文章,都會發佈在 Max 的 Facebook 粉絲專頁,如果想看最新更新,還請您按讚或是追蹤唷!
Max 行銷誌:https://www.facebook.com/maxlist25/
在〈[數據分析] Python快速計算NES模型〉中有 4 則留言
不好意思,內文提及「此篇提供程式碼供大家參考」
但是並沒有看到程式碼,是否為該圖片(已經看不到圖片了)
HI Celine,
您好,除了本頁目前提供的 python 版本外,也可以參考此篇有提供 NES 模型 sql 指令的寫法唷:
【資料庫筆記】 PostgreSQL 基礎教學和練習題操作
這程式碼需要改一下
很多變數沒有交代清楚啊
HI Kuo,謝謝你的回
這篇是兩年多前寫的,現在回頭看的確有很多可以加強的地方。
如果是想看更完整一點的 NES 會員分類,可以參考半年前寫的這篇 【資料庫筆記】 PostgreSQL 基礎教學和練習題操作,裡面有完整的使用 sql 做 NES 會員分類唷!
希望這兩篇文章有幫助到你:)
Max
留言功能已關閉。