Pandas 中階・多層分組、分級與轉換
這一頁是題幹試閱;登入/註冊後每題可以在瀏覽器裡執行、對答案,第一次交對 +10 XP。
- 01
會員折扣規則
中等apply 自訂函式訂單表 orders 有 member_level(gold/silver/normal)與 amount。折扣規則:
- gold:一律 8 折。
- silver:amount 大於等於 1000 打 9 折,否則不打折。
- normal:amount 大於等於 3000 打 95 折,否則不打折。
請寫一個函式處理一列資料,用 apply(..., axis=1) 新增 pay 欄(折後金額,四捨五入成整數)。
result 保留 order_id、member_level、amount、pay 四欄,列順序與原表相同。
作答方式:資料已在程式裡建好。只改「TODO」那一段,最後的 print 保留不動,輸出才能自動對答案。本題在瀏覽器內以 Pyodide 執行(pandas 2.3)。
作答登入後可作答 - 02
區域×品類彙總
中等多層 groupby銷售明細 sales 要依「區域+品類」兩層分組,算出每組的筆數、總額、平均。
result 五欄:region、category、n(筆數)、total(amount 加總)、avg(amount 平均,四捨五入到整數,型別為整數)。
排序:先依 total 由大到小;total 相同時依 region、category 由小到大。
作答方式:資料已在程式裡建好。只改「TODO」那一段,最後的 print 保留不動,輸出才能自動對答案。本題在瀏覽器內以 Pyodide 執行(pandas 2.3)。
作答登入後可作答 - 03
回應時間分級
中等分箱 cutAPI 監控 calls 記錄了每次呼叫的 endpoint 與 ms(回應毫秒)。請把回應時間分成三級並計數:
- fast:0 < ms ≤ 100
- normal:100 < ms ≤ 500
- slow:500 < ms
counts 是一個 Series:索引依序為 fast、normal、slow(照級別順序,不依次數排),值為各級筆數。
作答方式:資料已在程式裡建好。只改「TODO」那一段,最後的 print 保留不動,輸出才能自動對答案。本題在瀏覽器內以 Pyodide 執行(pandas 2.3)。
作答登入後可作答 - 04
訂單占客戶比例
中等groupby transform訂單表 orders 中,請替每筆訂單算出「這筆金額占該客戶所有訂單總額的百分比」。
新增 share 欄:amount ÷ 該客戶 amount 總和 × 100,四捨五入到小數 1 位。
result 保留 order_id、customer、amount、share 四欄,依 customer、order_id 由小到大排序。
作答方式:資料已在程式裡建好。只改「TODO」那一段,最後的 print 保留不動,輸出才能自動對答案。本題在瀏覽器內以 Pyodide 執行(pandas 2.3)。
作答登入後可作答

送件鴿飛出去了