Day 18 Pandas 資料清理 引言 真實世界的資料幾乎都不乾淨:可能缺值、可能有重複列、可能有格式不一致、可能有離群值。資料科學家常說「資料清理佔了 80% 的時間」,剩下的 20% 才是建模與分析。Pandas 提供一整套清理工具,今天要學會的正是這些日常必備:缺失值處理、條件篩選、排序、去重、型別轉換,以及最實用的 groupby 分組聚合。這些動作不需要寫複雜的演算法,但每一招都得做扎實,模型訓練的成果才會穩定。 學完今天的內容,你會具備處理一份中等規模的真實表格資料的能力。從明天起,我們會進入視覺化階段,用 Matplotlib 與 Seaborn 把清理後的資料畫成圖表。資料清理與視覺化是資料分析的兩條腿,先把資料整理好,畫出來的圖才有意義。 缺失值處理:isnull、fillna、dropna Pandas 用 NaN(Not a Number)表示缺失值。可以用 isnull() 或 notnull() 判斷位置,再用 fillna() 填補、dropna() 丟棄。實務上建議先檢查缺失比例,決定要補還是刪:缺失很少就刪,缺失有規律或占比偏高就補。判斷缺失型態也是清理的關鍵:是「完全隨機缺漏」還是「某個族群特別容易漏」,處理方式會很不一樣。如果是後者,直接補平均反而會掩蓋問題,這時通常會加上「是否缺值」的衍生欄位給模型參考。 import pandas as pd import numpy as np df = pd.DataFrame({ "姓名" : [ "小明" , "小華" , "小美" , "小李" ], "數學" : [ 90 , np.nan, 95 , 70 ], "英文" : [ 78 , 80 , np.nan, 75 ], }) print (df.isnull()) # 標出每個位置是否缺失 print (df.isnull(). sum ()) # 每欄缺失值數量 # 刪除有缺失的列 df_drop = df.dropna() # 填補:固定值 df_fill_const = df.fil...