AI & Data Dreamers練功房
寶箱片場規則
DATA GATES・資料處理關卡・中階・4 題

Pandas 中階・合併與樞紐

這一頁是題幹試閱;登入/註冊後每題可以在瀏覽器裡執行、對答案,第一次交對 +10 XP。

  1. 01

    各城市營收

    中等merge

    訂單表 orders 只有客戶代碼 customer,城市資訊在客戶表 customers(customer、name、city)。

    請只計算 status 為 paid 的訂單,算出每個城市的營收。

    result 兩欄:city、revenue(amount 加總),依 revenue 由大到小排序。

    作答方式:資料已在程式裡建好。只改「TODO」那一段,最後的 print 保留不動,輸出才能自動對答案。本題在瀏覽器內以 Pyodide 執行(pandas 2.3)。

    作答登入後可作答
  2. 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)。

    作答登入後可作答
  3. 03

    日期×區域交叉表

    中等pivot_table

    銷售明細 sales 有 date、region、category、amount。主管要一張交叉表:列是日期、欄是區域、值是當天該區的 amount 加總,沒有銷售的格子填 0。

    請建立 result:用 pivot_table 產生,欄的順序固定為 ["北區", "中區", "南區"]。列依日期由小到大。

    程式會用 to_string() 印出(保留日期索引)。

    作答方式:資料已在程式裡建好。只改「TODO」那一段,最後的 print 保留不動,輸出才能自動對答案。本題在瀏覽器內以 Pyodide 執行(pandas 2.3)。

    作答登入後可作答
  4. 04

    寬表轉長表

    中等reshape(melt)

    某個 API 回傳的股價是「寬表」:wide 每列一天,每支股票各占一欄。要寫進資料庫前,得轉成「長表」:每列是一支股票的一天。

    請建立 result:三欄 date、stock_id、close,依 stock_id 由小到大、再依 date 由小到大排序。

    作答方式:資料已在程式裡建好。只改「TODO」那一段,最後的 print 保留不動,輸出才能自動對答案。本題在瀏覽器內以 Pyodide 執行(pandas 2.3)。

    作答登入後可作答