[python] 판다스를 이용한 데이터 클리닝과 전처리

판다스는 파이썬의 데이터 조작과 분석을 위한 라이브러리로, 데이터 클리닝과 전처리 작업을 효과적으로 수행할 수 있습니다. 이번 포스트에서는 판다스를 사용하여 데이터를 클리닝하고 전처리하는 방법에 대해 알아보겠습니다.

데이터 클리닝

결측치 처리

판다스를 이용하여 결측치를 처리하는 방법은 다양합니다. dropna() 메서드를 사용하여 결측치가 포함된 행이나 열을 제거할 수 있고, fillna() 메서드를 사용하여 결측치를 다른 값으로 대체할 수 있습니다.

예를 들어, 다음은 결측치를 0으로 대체하는 예시입니다.

import pandas as pd

# 결측치를 0으로 대체
df.fillna(0, inplace=True)

이상치 처리

이상치는 분석 결과를 왜곡시킬 수 있으므로, 이를 처리하는 것이 중요합니다. 이상치를 식별하고 제거하거나 대체하는 작업은 데이터 클리닝의 핵심 부분입니다. quantile() 메서드와 논리 연산을 사용하여 이상치를 식별하고 처리할 수 있습니다.

# 상위/하위 1%에 해당하는 값 이상치로 처리
Q1 = df['column'].quantile(0.01)
Q3 = df['column'].quantile(0.99)
df = df[(df['column'] > Q1) & (df['column'] < Q3)]

데이터 전처리

범주형 데이터 인코딩

머신러닝 모델에 입력으로 넣기 위해 범주형 데이터를 숫자 형태로 변환해야 합니다. 이를 위해 get_dummies()LabelEncoder 등을 사용하여 범주형 데이터를 인코딩할 수 있습니다.

# 원핫인코딩
df_encoded = pd.get_dummies(df, columns=['categorical_column'])

# LabelEncoder 사용
from sklearn.preprocessing import LabelEncoder
label_encoder = LabelEncoder()
df['categorical_column'] = label_encoder.fit_transform(df['categorical_column'])

정규화 및 표준화

데이터의 스케일 차이로 인해 모델의 성능이 저하될 수 있으므로, 데이터를 정규화하거나 표준화하는 작업이 필요합니다. 사이킷런의 MinMaxScalerStandardScaler를 사용하여 데이터를 정규화하거나 표준화할 수 있습니다.

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
df_scaled = scaler.fit_transform(df)

결론

판다스를 이용하여 데이터를 클리닝하고 전처리하는 작업은 데이터 과학 및 머신러닝 프로젝트에서 매우 중요합니다. 이러한 작업을 통해 모델의 성능을 향상시키고 신뢰할 수 있는 결과를 얻을 수 있습니다.

참고문헌: