Pandas 中階・合併與樞紐
這一頁是題幹試閱;登入/註冊後每題可以在瀏覽器裡執行、對答案,第一次交對 +10 XP。
- 01
各城市營收
中等merge訂單表 orders 只有客戶代碼 customer,城市資訊在客戶表 customers(customer、name、city)。
請只計算 status 為 paid 的訂單,算出每個城市的營收。
result 兩欄:city、revenue(amount 加總),依 revenue 由大到小排序。
作答方式:資料已在程式裡建好。只改「TODO」那一段,最後的 print 保留不動,輸出才能自動對答案。本題在瀏覽器內以 Pyodide 執行(pandas 2.3)。
作答登入後可作答 - 02
沒下過單的客戶
中等merge(left/anti join)行銷要對「從沒下過任何訂單」的客戶發優惠券。客戶在 customers,訂單在 orders(不分狀態,有任何一筆就算下過單)。
請建立 result:沒下過單的客戶,兩欄 customer、name,依 customer 由小到大。
(SQL 的寫法是 LEFT JOIN ... WHERE o.order_id IS NULL,pandas 也能做同樣的事。)
作答方式:資料已在程式裡建好。只改「TODO」那一段,最後的 print 保留不動,輸出才能自動對答案。本題在瀏覽器內以 Pyodide 執行(pandas 2.3)。
作答登入後可作答 - 03
日期×區域交叉表
中等pivot_table銷售明細 sales 有 date、region、category、amount。主管要一張交叉表:列是日期、欄是區域、值是當天該區的 amount 加總,沒有銷售的格子填 0。
請建立 result:用 pivot_table 產生,欄的順序固定為 ["北區", "中區", "南區"]。列依日期由小到大。
程式會用 to_string() 印出(保留日期索引)。
作答方式:資料已在程式裡建好。只改「TODO」那一段,最後的 print 保留不動,輸出才能自動對答案。本題在瀏覽器內以 Pyodide 執行(pandas 2.3)。
作答登入後可作答 - 04
寬表轉長表
中等reshape(melt)某個 API 回傳的股價是「寬表」:wide 每列一天,每支股票各占一欄。要寫進資料庫前,得轉成「長表」:每列是一支股票的一天。
請建立 result:三欄 date、stock_id、close,依 stock_id 由小到大、再依 date 由小到大排序。
作答方式:資料已在程式裡建好。只改「TODO」那一段,最後的 print 保留不動,輸出才能自動對答案。本題在瀏覽器內以 Pyodide 執行(pandas 2.3)。
作答登入後可作答

送件鴿飛出去了