題⽬描述 你被分配到統計系的資料分析⼩組 3 負責分析同學的選課資料 。 每位同學的選課資料包含同學姓名 、 學 2 號 、 選修的課程列表 3 以及每⾨課的成績 。 然⽽ 3 資料中可能存在⼀些問題 3 例如重複選課 、 缺少成績 等 。 你的任務是清理這些資料並進⾏統計分析 3 從中提取有價值的信息 3 以協助系上了解同學的選課情況 1 2 1 2 3 1 及學習表現 。 作業要求 ⼀ 、 資料清理 . 移除重複課程 } ○ 對於每位同學的選課列表 3 若有重複的課程名稱 3 僅保留第⼀次出現的課程 3 移除後續的重 複項⽬ 。 . 處理缺少成績的課程 } ○ 檢查每位同學選修的課程 3 若某⾨課程缺少成績 3 將其成績設為 None 。 ⼆ 、 統計分析 . 計算每⾨課程的平均成績 } ○ 對所有同學的成績進⾏統計 3 計算每⾨課程的平均成績 。 計算時應忽略成績為 None 的項 ⽬。 . 計算每位同學的平均成績 } ○ 對每位同學的所有課程成績進⾏計算 3 得出每位同學的平均成績 。 計算時應忽略成績為 None 的項⽬ 。 . 找出成績最⾼的三⾨課程 } ○ 根據每⾨課程的平均成績 3 找出平均成績最⾼的三⾨課程 3 並列出其平均分數 。 三 、 進階分析 . 找出選修所有核⼼課程的同學 } ○ 假設核⼼課程為 "Math"、 "Statistics" 和 "Python"3 找出所有選修了這三⾨課程的同學名 單。 . 統計每⾨課程的選修⼈數 } ○ 計算每⾨課程被選修的同學⼈數 3 列出各課程的選修⼈數 。 限制條件 ● ● 可使⽤的 Python 基礎概念 } ○ 資料型別 ¸列表 、 元組 、 字典 、 集合¾ ○ 運算⼦ ○ 條件判斷 ¸if-else¾ ○ 迴圈 ¸for-loop¾ 不可使⽤的功能 } ○ 不使⽤任何內建的⾼階函數 ¸如 map, filter, sorted 等¾ ○ 不使⽤外部 lib ¸如 pandas, numpy 等¾ 提⽰ ● ● ● 資料清理 } ○ 可以利⽤ set 來檢查和移除重複的課程名稱 。 ○ 使⽤條件判斷來檢查每⾨課程是否有對應的成績 3 若無則設為 None 。 統計計算 } ○ 使⽤字典來儲存每⾨課程的成績列表 3 便於後續計算平均值 。 ○ 注意處理 None 值 3 避免在計算時引發錯誤 。 進階分析 } ○ 利⽤集合的包含關係來判斷同學是否選修了所有核⼼課程 。 ○ 使⽤字典來統計每⾨課程的選修⼈數 。