資料清洗是資料分析中最重要的「資料前處理」步驟。
它主要處理三種問題:
- 缺失值(補值或刪除)
- 錯誤值(修正異常字串)
- 離群值(透過標準差或盒鬚圖識別)。
良好的前處理能確保模型分析的準確性。
資料清洗也是資料分析中最重要的「資料前處理」步驟。

資料清洗前的資料類型認識
資料分析在一開始,往往不會拿到最乾淨的資料(或是資料分析上認定的有用資料),沒有辦法對於建立模型有好的提升,其中就包含了下列幾種狀況:
- 錯誤值(error value): 像是出現不該有的字串(string)或英文名稱
- 缺失值(missing value): 某筆資料的欄位空白(blank)
- 離群值(outliers): 某筆資料的值過高或過低,也就是所謂的極端值
此情況會使得資料的分析與解讀造成困擾,所以在操作的一開始,我們的最優先級別就是篩選出這些有問題的資料,進行加工處理,以利後續的分析工作。
而不同的情況我們會使用不同的技巧來做處理,最容易的處理方式就是將上述有出現問題的資料直接刪除,最終只保留完全無問題的資料,這樣的方式往往會產生問題,就是刪除了過多的資料筆數,導致後續的分析無法有效的看到整體資料的分佈。
在說明不同資料類型以前,有兩個較為重要的資料類型需要跟大家科普一下:
類別型資料(Categorical Data)和連續型資料(Continuous Data)是統計學和數據分析中兩種不同類型的數據。
- 類別型資料(Categorical Data):
- 定義: 類別型資料是表示某些特定類別或群體的數據。這類數據通常是描述性的,不能夠進行數學計算。
- 特色: 類別型資料的值屬於一個有限的、固定的類別或群組,而且通常沒有順序的分別。例如,性別(男生、女生)、地點(東部、西部、南部、北部)。
- 呈現方式: 可以使用文字、符號(0、1)或編碼表示資料。
- 連續型資料(Continuous Data):
- 定義: 連續型資料是可以在一定範圍內取任何有數值的資料。這類的資料可以進行數學計算。
- 特色: 連續型資料的值在某個範圍內是連續變化的,不存在孤立的數值。例如,身高、體重、溫度等都是連續型資料。
- 呈現方式: 通常使用實數表示,可以是整數或小數。
有了簡單對於資料類型的認識後,我們來個別說明不同情形建議的操作方式:
錯誤值與缺失值的處理
- 若該欄位是類別型資料(Categorical Data)可以替換成該欄位的眾數(mode)
- 若該欄位是連續型資料(Continuous Data)可以替換成該欄位的平均數(mean)或中位數(median)
- 在特殊的情況下,可以利用不同演算法來進行填補的動作
離群值的處理
- 若該欄位是連續型資料(Continuous Data)可使用統計方法來判斷該筆資料是否離群
- 在統計學上,資料的分佈超過整體資料的1.5倍標準差(Standard Deviation)即稱為離群值(Outliers)
- 而多數研究人員會優先踢出超過3倍標準差的資料
- 若是在回歸模型(Regression)的操作上,可以使用常態分佈轉換技巧來進行調整
如何用視覺化更容易的判斷離群值的分佈呢?
麥特建議可以使用圖表當中的盒鬚圖(Boxplot)來觀察資料當中的欄位是否有離群的資料

圖片來源 : Heumann, C., & Shalabh, M. S. (2016). Introduction to statistics and data analysis. Springer International Publishing Switzerland.
也就是看到盒鬚圖當中,中間盒子外面兩側有凸出來的地方,可以觀察出這批資料當中,有沒有過度離散的資料,盒子以外的資料分布距離很大,就表示資料的離散程度高。
資料前處理常見問題
Q1: 什麼是資料清洗 (Data Cleaning)?
A: 資料清洗是資料分析流程中的關鍵環節,目的是從原始數據中識別並修正(或刪除)錯誤、損壞、格式不正確或重複的記錄,以提高數據品質。
Q2: 資料前處理通常包含哪些步驟?
A: 常見的資料前處理步驟包括:資料清洗(處理缺失值與異常值)、資料轉換(如標準化或類別編碼)、以及資料特徵提取。
Q3: 遇到缺失值(Missing Value)應該怎麼處理?
A: 處理缺失值有三種常見做法:
- 直接刪除(適合缺失比例極低時)
- 類別型資料補眾數
- 連續型資料補平均數或中位數。
Q4: 如何判斷資料中是否存在離群值 (Outliers)?
A: 除了觀察標準差(通常超過 3 倍標準差即為離群值),最直觀的方法是使用「盒鬚圖 (Boxplot)」,盒子範圍外的點即代表潛在的離群值。
Q5: 為什麼類別型資料不能直接算平均數?
A: 因為類別型資料(如性別、地點)是描述性而非數值性的,數學計算無意義。在進行資料前處理時,類別資料通常使用眾數進行填補。
結論
在本篇文章當中,有學習到在遇上錯誤值、缺失值、離群值的基礎處理技巧,由於收到不同類型的資料,會需要更多進階的前處理技巧,後續會用程式碼的部分來進行更多的介紹,希望大家能在文章中學習到有用的知識,一起學習更多有關資料分析的技能吧 !
送給讀者的新手 Python 實作範例
【小練習】用 Python 處理缺失值
如果你已經安裝了 Python 與 Pandas 套件,你可以嘗試以下程式碼來進行簡單的資料清洗練習:
import pandas as pd
1. 建立一個含有缺失值的資料表
df = pd.DataFrame({'成績': [85, 90, None, 70, 100]})
2. 進行資料前處理:將缺失值填補為平均數
df['成績'] = df['成績'].fillna(df['成績'].mean())
print(df)
3. 最後得到補齊平均值的資料表
{'成績': [85.0, 90.0, 86.25, 70.0, 100.0]}
