iT邦幫忙

2026 iThome 鐵人賽

DAY 10
0
自我挑戰組

拯救混亂數據:30 天 Python 輕量級 ETL 與電商關聯資料分析系列 第 10

[Day 10] 驗證偏遠州的代價:計算運費比率 (Freight Ratio) 揪出物流痛點

  • 分享至 

  • xImage
  •  

驗證昨天的商業推論

在 Day 9 的地理下鑽分析中,我們發現 PB、AP、AC 等偏遠州的客單價(AOV)高達 190~218 BRL,遠高於聖保羅(SP)的 110 BRL。當時我們提出了一個推論:偏遠地區是因為運費門檻高,迫使買家只在購買高單價耐久財時才選擇線上網購。

推論不能只停留在猜測,資料分析師的職責是用數據求證。

今天我們跳脫「絕對運費金額」的盲點,透過特徵工程建立「運費佔比 (Freight Ratio)」,定量檢驗偏遠地區買家承受的物流代價。

步驟一:特徵工程——建立「運費比率」衍生欄位

單看「運費花了多少錢(絕對值)」容易失真:買一張 1,000 元的沙發付 100 元運費很合理(佔比 9%);
但買一條 50 元的毛巾付 50 元運費,買家就會直接棄單(佔比 50%)。

因此,我們需要計算每筆訂單的相對負擔指標:

# 1. 計算每筆訂單的總支出(商品金額 + 運費)
valid_orders['total_order_amount'] = (
    valid_orders['total_item_price'] + valid_orders['total_freight_value']
)

# 2. 衍生特徵:運費佔比 (%)
valid_orders['freight_ratio'] = (
    valid_orders['total_freight_value'] / valid_orders['total_order_amount']
) * 100

# 檢視計算結果
valid_orders[['order_id', 'total_item_price', 'total_freight_value', 'freight_ratio']].head(3)

實作區 :

https://ithelp.ithome.com.tw/upload/images/20260917/20136155QsfrqWJvFG.png

步驟二:依州別聚合,揭露「運費刺客」分佈

有了相對指標後,我們依照 customer_state 分組,計算各州的平均運費金額與平均運費佔比:

# 依州別計算平均運費與平均運費佔比
freight_summary = valid_orders.groupby('customer_state').agg(
    avg_freight=('total_freight_value', 'mean'),
    avg_freight_ratio=('freight_ratio', 'mean'),
    avg_aov=('total_item_price', 'mean')
).reset_index()

# 依照運費佔比進行降冪排序,檢視負擔最重的前五名州別
freight_summary.sort_values(by='avg_freight_ratio', ascending=False).head(5)

實作區:

https://ithelp.ithome.com.tw/upload/images/20260917/20136155jxGG706A3G.png

步驟三:商業洞察——數據佐證物流城鄉鴻溝

把運費佔比最高與最低的區域拿來對比,數據呈現出極其殘酷的地域落差:

  • 核心電商圈(聖保羅 SP): 平均運費佔比僅約 12%~14%,物流基礎建設發達、賣家集中,買家幾乎沒有感受過運費壓力。

  • 高運費痛點區(北部與東北部各州): 平均運費佔比飆破 25%~30%。意味著這些地區的買家每在線上結帳 100 元,就有接近 30 元是在替長途物流買單。

假說完全得證:
偏遠地區的單量極低(低於 0.6%)且客單價極高(~200 BRL),根本原因就是高昂的運費直接扼殺了低單價、日常日用品的網購需求。只有當商品單價夠高、當地門市無法購得時,偏遠買家才願意承受這筆物流成本。

步驟四:視覺化排序定錨

最後,我們將各州平均運費比率繪製成水平長條圖,直觀展現物流成本的階梯式分佈:

import matplotlib.pyplot as plt
import seaborn as sns

plt.figure(figsize=(10, 8))
sorted_freight = freight_summary.sort_values(by='avg_freight_ratio', ascending=True)

sns.barplot(
    data=sorted_freight,
    x='avg_freight_ratio',
    y='customer_state',
    palette='Reds'
)

plt.title('Average Freight Ratio by Customer State (%)', fontsize=12, fontweight='bold')
plt.xlabel('Freight Ratio (%)')
plt.ylabel('State')
plt.tight_layout()
plt.show()

實作區:

https://ithelp.ithome.com.tw/upload/images/20260917/20136155ryvwR41x47.png


  • 特徵工程轉化: 掌握絕對指標(金額)向相對指標(比率)的轉換,消除商品本體價格造成的偏差。

  • 完成假說閉環: 用 freight_ratio 完美解釋了 Day 9 偏遠州高客單價的成因。

  • 定位業務瓶頸: 鎖定北部與東北部的長途物流成本,這是平台向全巴西擴張的最大阻礙。

高額的運費已經讓偏遠買家荷包失血,如果商品還頻繁「延遲送達」,買家的怒火可想而知。
明天,我們將跨入「物流延遲天數 vs. 顧客評價 (Review Score)」,看看物流體驗是如何直接瓦解買家的信任!


上一篇
[Day 09] 走出平均值盲點:巴西各州單量集中度與客單價 (AOV) 反差
下一篇
承諾與背叛:計算物流延遲天數,揭露 1 星負評的致命元兇
系列文
拯救混亂數據:30 天 Python 輕量級 ETL 與電商關聯資料分析16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言