[python] 파이썬을 이용한 데이터 전처리 과정

데이터 분석 및 머신러닝 프로젝트에서 가장 중요한 단계 중 하나는 데이터 전처리입니다. 데이터 전처리란 원시 데이터를 분석과 모델링에 적합한 형태로 가공하는 과정을 말합니다. 파이썬은 다양한 라이브러리와 기능을 제공하여 효율적이고 편리한 데이터 전처리를 가능하게 합니다. 이번 블로그 포스트에서는 파이썬을 이용한 데이터 전처리 과정을 알아보겠습니다.

1. 데이터 불러오기

데이터 전처리의 첫 번째 단계는 데이터를 불러오는 것입니다. 파이썬에서는 pandas라는 라이브러리를 사용하여 다양한 데이터 형식을 읽어들일 수 있습니다. pandasread_csv 함수를 사용하면 CSV 파일을 불러올 수 있습니다. 다른 데이터 형식에 대해서는 read_excel, read_json 등의 함수를 사용할 수 있습니다.

import pandas as pd

data = pd.read_csv('data.csv')

2. 결측값 처리

데이터에는 종종 결측값이 존재할 수 있습니다. 결측값은 데이터 분석을 방해하는 요소이므로 이를 처리해주어야 합니다. pandas에서는 dropna 함수를 사용하여 결측값이 있는 행 또는 열을 제거할 수 있습니다. 또는 fillna 함수를 사용하여 결측값을 다른 값으로 대체할 수도 있습니다.

# 결측값이 있는 행 제거
data.dropna(axis=0, inplace=True)

# 결측값을 0으로 대체
data.fillna(0, inplace=True)

3. 이상치 처리

이상치는 데이터의 분포에서 벗어난 값으로, 이를 올바르게 처리하지 않으면 모델의 성능에 영향을 줄 수 있습니다. 이상치를 처리하는 방법 중 대표적인 방법은 통계적 기법을 활용한 이상치 탐지 및 제거입니다. pandas에서는 describe 함수를 사용하여 특정 열의 기초 통계 정보를 확인할 수 있고, quantile 함수를 활용하여 이상치를 제거할 수도 있습니다.

# 이상치 제거
Q1 = data['column_name'].quantile(0.25)
Q3 = data['column_name'].quantile(0.75)
IQR = Q3 - Q1

data = data[~((data['column_name'] < (Q1 - 1.5 * IQR)) | (data['column_name'] > (Q3 + 1.5 * IQR)))]

4. 데이터 스케일링

데이터 스케일링은 변수 간의 크기 차이를 조정하여 모델 학습에 도움을 줍니다. 일반적으로 많이 사용되는 데이터 스케일링 방법은 표준화(Standardization)와 정규화(Normalization)입니다. sklearn 라이브러리의 StandardScalerMinMaxScaler 클래스를 사용하여 각각 표준화와 정규화를 적용할 수 있습니다.

from sklearn.preprocessing import StandardScaler, MinMaxScaler

# 표준화
scaler = StandardScaler()
scaled_data = scaler.fit_transform(data)

# 정규화
scaler = MinMaxScaler()
scaled_data = scaler.fit_transform(data)

5. 원핫인코딩

머신러닝 모델은 일반적으로 숫자 형태의 입력 데이터를 기대합니다. 그러나 범주형 변수는 보통 문자열로 표현되는 경우가 많습니다. 이러한 범주형 변수를 모델에 적용하기 위해서는 원핫인코딩(One-Hot Encoding)을 해주어야 합니다. pandasget_dummies 함수를 사용하여 간단하게 원핫인코딩을 적용할 수 있습니다.

# 원핫인코딩
encoded_data = pd.get_dummies(data)

6. 중복값 처리

데이터에 중복값이 있을 경우 모델의 성능에 부정적인 영향을 줄 수 있습니다. 중복값을 처리하기 위해 pandasdrop_duplicates 함수를 사용할 수 있습니다. 이 함수는 중복된 행을 제거하여 유일한 값을 포함하는 데이터프레임을 반환합니다.

# 중복값 제거
data.drop_duplicates(inplace=True)

파이썬을 이용한 데이터 전처리는 pandas 라이브러리와 다양한 기능들을 활용하여 효율적으로 처리할 수 있습니다. 데이터 전처리는 데이터 분석 및 머신러닝 모델링의 성공을 위해 필수적인 단계이므로, 실제 프로젝트에서는 신중하고 철저하게 진행해야 합니다.