題組內容
請回答下列有關資料分析的問題:
(二)請列舉三項資料清理檢查的資料問題,並舉例說明。【9 分】
詳解 (共 1 筆)
詳解
資料清理檢查的資料問題
資料清理過程中常見的資料問題有多種。以下列舉三項常見的資料問題,並分別舉例說明如何檢查和處理這些問題:
資料清理過程中常見的資料問題有多種。以下列舉三項常見的資料問題,並分別舉例說明如何檢查和處理這些問題:
1. 缺失值(Missing Values)
說明
缺失值是資料集中某些欄位沒有值,這會影響分析結果的準確性和模型的性能。
說明
缺失值是資料集中某些欄位沒有值,這會影響分析結果的準確性和模型的性能。
檢查方法
使用統計方法計算每個欄位的缺失值數量。
生成缺失值矩陣圖視覺化資料缺失情況。
處理方法
刪除含有缺失值的記錄(適用於缺失值較少的情況)。
用均值、中位數、眾數或插補法填補缺失值。
例子
一個銷售資料集包含以下數據:
使用統計方法計算每個欄位的缺失值數量。
生成缺失值矩陣圖視覺化資料缺失情況。
處理方法
刪除含有缺失值的記錄(適用於缺失值較少的情況)。
用均值、中位數、眾數或插補法填補缺失值。
例子
一個銷售資料集包含以下數據:
ID Name Sales Region
1 Alice 1500 North
2 Bob 2300 South
3 Charlie NaN East
4 David 1800 NaN
檢查:使用 pandas 庫的 isnull().sum() 方法檢查缺失值。
處理:用銷售欄位的平均值填補 Charlie 的缺失值,用大多數記錄所在的地區填補 David 的地區。
python
複製程式碼
import pandas as pd
data = {'ID': [1, 2, 3, 4],
'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Sales': [1500, 2300, None, 1800],
'Region': ['North', 'South', 'East', None]}
df = pd.DataFrame(data)
1 Alice 1500 North
2 Bob 2300 South
3 Charlie NaN East
4 David 1800 NaN
檢查:使用 pandas 庫的 isnull().sum() 方法檢查缺失值。
處理:用銷售欄位的平均值填補 Charlie 的缺失值,用大多數記錄所在的地區填補 David 的地區。
python
複製程式碼
import pandas as pd
data = {'ID': [1, 2, 3, 4],
'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Sales': [1500, 2300, None, 1800],
'Region': ['North', 'South', 'East', None]}
df = pd.DataFrame(data)
# 檢查缺失值
print(df.isnull().sum())
print(df.isnull().sum())
填補缺失值
df['Sales'].fillna(df['Sales'].mean(), inplace=True)
df['Region'].fillna(df['Region'].mode()[0], inplace=True)
print(df)
2. 異常值(Outliers)
說明
異常值是指明顯偏離其他數據點的數據,可能是由於錯誤或特殊情況引起的,會影響統計分析和模型的準確性。
說明
異常值是指明顯偏離其他數據點的數據,可能是由於錯誤或特殊情況引起的,會影響統計分析和模型的準確性。
檢查方法
使用統計方法,如標準差、四分位距(IQR)檢測異常值。
使用視覺化方法,如箱線圖(Box Plot)或散點圖(Scatter Plot)。
處理方法
刪除異常值。
根據業務規則轉換異常值。
使用插補法處理異常值。
例子
一個收入資料集包含以下數據:
使用統計方法,如標準差、四分位距(IQR)檢測異常值。
使用視覺化方法,如箱線圖(Box Plot)或散點圖(Scatter Plot)。
處理方法
刪除異常值。
根據業務規則轉換異常值。
使用插補法處理異常值。
例子
一個收入資料集包含以下數據:
複製程式碼
ID Name Income
1 Alice 50000
2 Bob 55000
3 Charlie 1200000
4 David 60000
檢查:使用箱線圖檢測異常值。
處理:根據業務規則認為超過 100000 的收入是異常值,可以將其刪除或用合理的值代替。
python
複製程式碼
import pandas as pd
import numpy as np
ID Name Income
1 Alice 50000
2 Bob 55000
3 Charlie 1200000
4 David 60000
檢查:使用箱線圖檢測異常值。
處理:根據業務規則認為超過 100000 的收入是異常值,可以將其刪除或用合理的值代替。
python
複製程式碼
import pandas as pd
import numpy as np
data = {'ID': [1, 2, 3, 4],
'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Income': [50000, 55000, 1200000, 60000]}
df = pd.DataFrame(data)
'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Income': [50000, 55000, 1200000, 60000]}
df = pd.DataFrame(data)
# 檢查異常值
print(df.describe())
# 畫箱線圖檢測異常值
df.boxplot(column='Income')
print(df.describe())
# 畫箱線圖檢測異常值
df.boxplot(column='Income')
# 處理異常值:將收入超過 100000 的異常值替換為中位數
median_income = df['Income'].median()
df['Income'] = np.where(df['Income'] > 100000, median_income, df['Income'])
print(df)
3. 重複值(Duplicate Values)
說明
重複值是指數據集中存在重複的記錄,這會導致分析結果的偏差和冗餘存儲。
median_income = df['Income'].median()
df['Income'] = np.where(df['Income'] > 100000, median_income, df['Income'])
print(df)
3. 重複值(Duplicate Values)
說明
重複值是指數據集中存在重複的記錄,這會導致分析結果的偏差和冗餘存儲。
檢查方法
使用資料框架的 duplicated() 方法檢查重複值。
處理方法
刪除重複的記錄。
例子
一個顧客資料集包含以下數據:
使用資料框架的 duplicated() 方法檢查重複值。
處理方法
刪除重複的記錄。
例子
一個顧客資料集包含以下數據:
graphql
複製程式碼
ID Name Email
1 Alice alice@example.com
2 Bob bob@example.com
3 Alice alice@example.com
4 David david@example.com
檢查:使用 duplicated() 方法檢查重複值。
處理:刪除重複的記錄。
python
複製程式碼
import pandas as pd
複製程式碼
ID Name Email
1 Alice alice@example.com
2 Bob bob@example.com
3 Alice alice@example.com
4 David david@example.com
檢查:使用 duplicated() 方法檢查重複值。
處理:刪除重複的記錄。
python
複製程式碼
import pandas as pd
data = {'ID': [1, 2, 3, 4],
'Name': ['Alice', 'Bob', 'Alice', 'David'],
'Email': ['alice@example.com', 'bob@example.com', 'alice@example.com', 'david@example.com']}
df = pd.DataFrame(data)
'Name': ['Alice', 'Bob', 'Alice', 'David'],
'Email': ['alice@example.com', 'bob@example.com', 'alice@example.com', 'david@example.com']}
df = pd.DataFrame(data)
# 檢查重複值
print(df.duplicated())
print(df.duplicated())