資料前處理
9 萬多筆原始資料分散在訂單、付款與顧客三張表格,需要整併與篩選。我們編寫程式完成清洗與串聯,這是萃取價值的關鍵第一步。
處理流程
- 彙總付款金額
一張訂單可能用多種方式付款(例如信用卡加優惠券),共有 2,961 張訂單有多筆付款。先依order_id把金額加總成一筆。 - 多表關聯合併
orders 的customer_id是每張訂單各給一個號碼,同一個人買兩次會有兩個號碼。合併 customers 表,改用customer_unique_id辨識同一位顧客,否則每個人都會變成只買過一次。 - 篩選有效訂單
只保留狀態為 delivered(已送達)且有付款的訂單,排除取消、未出貨等訂單。 - 時間格式轉換
把購買時間轉成日期格式,並以最後一筆訂單的隔天 2018-08-30 作為分析基準日,計算每位顧客距今多少天沒有購買。
原始資料(範例)
Orders 表
| order_id | customer_id | status |
|---|---|---|
| ORD_01 | CUST_A | delivered |
| ORD_02 | CUST_B | canceled |
Payments 表
| order_id | installments | value |
|---|---|---|
| ORD_01 | 1 | 50 |
| ORD_01 | 2 | 50 |
Customers 表
| customer_id | unique_id |
|---|---|
| CUST_A | UID_999 |
| CUST_B | UID_888 |
清洗後的 RFM 特徵表(範例)
| unique_id | Recency | Frequency | Monetary |
|---|---|---|---|
| UID_999 | 12 天 | 1 次 | 100 |
| UID_777 | 45 天 | 3 次 | 450 |
| UID_123 | 210 天 | 1 次 | 85 |
清洗結果
96,477張有效訂單
93,357位顧客
695天資料期間
有效訂單期間:2016-10-03 至 2018-08-29。