DS 102 實作中心
使用模擬的公司與據點資料練習型態清理、缺失與重複判斷、join cardinality、單位統一與驗證規則,完成一份可信的整理流程。
資訊
DS 102 實作資料為教學用模擬資料,所有公司名稱與數值均為示例,不代表任何真實企業的營運資料。
注意
請使用課程提供的模擬檔案練習。未經授權,不要把機關或公司的機密資料、個人資料或敏感資料貼到 AI 工具;使用真實的內部營運資料前,請先確認所屬單位的規範。
下載實作檔案
公司主檔
DS102_Company_Master.csv
5 家模擬公司的基本資料:company_id、company_name、sector、hq_region。
據點月資料(寬格式)
DS102_Site_Monthly_Wide.csv
2 家公司、每家 2 個據點、12 個月份欄位的用電量資料,用於 reshape 與 join cardinality 練習。
公司年度乾淨資料
DS102_Company_Year_Clean.csv
5 家公司、2023 至 2025 年,共 15 列。用於 Guided Lab。
公司年度練習資料
DS102_Company_Year_Practice.csv
刻意含有資料品質問題的練習資料。Data Quality Challenge 與 Independent Lab 使用。
資料字典(繁體中文)
DS102_Data_Dictionary_zh-TW.csv
三個檔案每個欄位的型態、單位、是否必填與說明。
Data dictionary (English)
DS102_Data_Dictionary_en.csv
英文版資料字典,欄位與單位和中文版相同。
Guided Lab starter notebook
DS102_Guided_Lab_Starter.ipynb
附引導與 TODO 的起始 Notebook,可從新的 kernel 由上到下執行。
Independent Lab starter notebook
DS102_Independent_Lab_Starter.ipynb
附清理決策紀錄範本的起始 Notebook。
實作任務
實作 A:Type & Date Repair
練習資料中有一欄營收被存成含千分位逗號的文字,還有一個日期無法解析。請先檢查再處理,並保留無法解析的線索。
使用檔案: 公司年度練習資料、資料字典(繁體中文)
步驟
- 載入 DS102_Company_Year_Practice.csv,用 df.dtypes 檢查每欄的型態。
- 找出被存成文字的數值欄位,確認問題字元(例如千分位逗號)後再轉換。
- 用 pd.to_datetime(..., errors="coerce") 解析 reported_at,並標記解析失敗的列。
- 確認處理後的型態是否符合資料字典。
要完成的產出
- 修正後的數值欄位(純數字型態)
- 一個標記日期解析失敗的旗標欄位
- 沒有被猜測填入的日期
實作 B:Missing/Duplicate Diagnosis
練習資料中有缺失值與重複列。請先判斷缺失代表什麼、重複是否真的是重複,再決定處理方式。
使用檔案: 公司年度練習資料、資料字典(繁體中文)
步驟
- 用 df.isna().sum() 找出缺失值,並判斷每個缺失代表未揭露、未蒐集或其他情況。
- 用 df.duplicated().sum() 檢查完全重複的列。
- 建立 company_id + year 的候選鍵,確認是否有重複的鍵。
- 寫下每一項發現的處理決策與理由。
要完成的產出
- 缺失值的判斷與處理方式
- 重複列的判斷與處理方式
- 候選鍵唯一性的檢查結果
資訊
本頁不會告訴你總共有幾個問題,也不公布標準答案。請把找到的問題與判斷理由帶到課堂討論。
實作 C:Join Cardinality Challenge
據點月資料中的 site_id 會在不同公司間重複出現。請先發現這個陷阱,再建立正確的 join 鍵。
使用檔案: 據點月資料(寬格式)、公司主檔、資料字典(繁體中文)
步驟
- 用 groupby("site_id")["company_id"].nunique() 檢查 site_id 是否在多家公司間重複。
- 嘗試只用 site_id 與公司主檔做 join,觀察列數是否符合預期。
- 建立 company_id + site_id 的正確 join 鍵,重新做一次 join。
- 比較兩次 join 的列數差異,寫下為什麼會不一樣。
要完成的產出
- site_id 重複情況的檢查結果
- 兩種 join 方式的列數比較
- 對 many-to-many 風險的說明
實作 D:Unit Normalization Review
假設另一個來源用不同單位記錄同一種指標。請只在有明確換算規則時才統一單位,並保留原始單位。
使用檔案: 公司年度乾淨資料、資料字典(繁體中文)
步驟
- 從資料字典確認 waste_tonnes 的單位。
- 假設有一個以公斤為單位的來源,寫出換算成公噸的公式。
- 在轉換後的資料中保留一欄記錄原始單位。
- 檢查同名欄位在不同來源中的定義是否一致(例如 employees 是否都只計正職)。
要完成的產出
- 一份換算規則的說明
- 保留原始單位的欄位
- 定義是否一致的檢查結果
實作 E:Data Contract Validation
把資料的預期規則寫成可執行的檢查,並確認規則真的能在資料有問題時失敗。
使用檔案: 公司年度乾淨資料、公司主檔、據點月資料(寬格式)、資料字典(繁體中文)
步驟
- 寫一項唯一性檢查:company_id + year 不可重複。
- 寫一項範圍檢查:employees 不可為負。
- 寫一項允許值檢查:sector 必須在允許清單內。
- 寫一項參照完整性檢查:site_monthly 的 company_id 必須存在於公司主檔。
- 用練習資料(含品質問題)再跑一次,確認至少有一項規則會失敗。
要完成的產出
- 至少四項可執行的驗證檢查
- 用練習資料驗證規則真的會失敗的證明
- 每項規則對應的規則類型(範圍、允許值、唯一性、參照完整性)
完成標記只記錄在這個瀏覽器(加入梯次後會同步)。實作成果請保存在你自己的 Notebook。
同步我的進度加入梯次後,進度可跨裝置保存,講師也能看到