[python] 데이터 정제하기
데이터 과학 및 기계 학습 프로젝트를 수행할 때, 데이터 정제는 매우 중요한 단계입니다. 데이터 정제는 누락된 값, 이상치, 중복 레코드 및 다양한 종류의 오류를 처리하여 데이터의 질을 향상시키는 과정입니다.
1. 누락된 값 처리
대부분의 데이터 세트에서 누락된 값이 존재하며, 이를 처리하지 않으면 분석 결과에 부정적인 영향을 미칠 수 있습니다. Python의 pandas
라이브러리를 사용하여 누락된 값이 포함된 행이나 열을 삭제하거나 다른 값으로 대체할 수 있습니다.
import pandas as pd
# 누락된 값이 포함된 데이터프레임
data = {'A': [1, 2, None, 4],
'B': [5, None, 7, 8]}
df = pd.DataFrame(data)
# 누락된 값이 포함된 행 삭제
df.dropna(axis=0, inplace=True)
# 누락된 값이 포함된 열 삭제
df.dropna(axis=1, inplace=True)
# 누락된 값 대체
df.fillna(value=0, inplace=True)
2. 이상치 처리
이상치는 데이터 집합에서 다른 값들과 극단적으로 다른 값들을 나타내며, 분석 결과에 왜곡을 유발할 수 있습니다. NumPy
와 pandas
라이브러리를 사용하여 이상치를 식별하고 처리할 수 있습니다.
import numpy as np
# 이상치 식별
def detect_outlier(data):
mean = np.mean(data)
std = np.std(data)
threshold = 3
outliers = []
for val in data:
z_score = (val - mean) / std
if np.abs(z_score) > threshold:
outliers.append(val)
return outliers
# 이상치 처리: 삭제 또는 대체
outliers = detect_outlier(df['A'])
df = df[~df['A'].isin(outliers)]
3. 중복 레코드 처리
중복된 레코드는 분석 결과에 왜곡을 유발할 수 있으므로 제거해야 합니다. pandas
의 drop_duplicates()
메서드를 사용하여 중복 레코드를 확인하고 제거할 수 있습니다.
# 중복 레코드 확인
duplicate_rows = df[df.duplicated()]
# 중복 레코드 제거
df = df.drop_duplicates()
결론
Python의 pandas
, NumPy
및 다른 라이브러리를 사용하여 데이터 정제를 수행할 수 있습니다. 이러한 처리과정을 효과적으로 수행하면, 정확한 결과를 얻을 수 있으며, 더 나은 모델을 개발할 수 있습니다.
데이터 정제에 대한 자세한 내용은 아래 참고 자료를 참조할 수 있습니다.