[파이썬] 파이썬을 이용한 데이터 전처리 샘플 프로젝트

데이터 전처리는 데이터 분석 및 머신 러닝 프로젝트에서 매우 중요한 단계입니다. 데이터 전처리 과정에서 데이터를 정제하고 정규화하여 모델 학습에 적합한 형태로 가공합니다. 이번 블로그 포스트에서는 파이썬을 이용하여 데이터 전처리를 적용하는 샘플 프로젝트를 알아보겠습니다.

프로젝트 개요

이번 프로젝트에서는 한 온라인 스토어의 판매 데이터를 사용합니다. 해당 데이터에는 제품명, 가격, 판매량 등의 정보가 포함되어 있습니다. 프로젝트의 목표는 다음과 같습니다.

프로젝트 구현

데이터 불러오기

import pandas as pd

# 데이터 파일 불러오기
data_path = 'data/sales_data.csv'
df = pd.read_csv(data_path)

# 데이터 확인
print(df.head())

먼저 pandas 라이브러리를 사용하여 데이터 파일을 불러옵니다. 데이터 파일은 CSV 형식으로 이루어져 있으며, read_csv() 함수를 사용하여 데이터프레임으로 변환합니다. 데이터프레임은 표 형태의 데이터 구조입니다. head() 함수를 사용하여 데이터의 상위 5개 행을 출력합니다.

결측치 및 이상치 처리

# 결측치 처리
df.fillna(0, inplace=True)

# 이상치 처리
df = df[df['sales'] <= 1000]

# 결과 출력
print(df.head())

데이터에는 종종 결측치나 이상치가 포함될 수 있습니다. 결측치는 fillna() 함수를 사용하여 원하는 값으로 채우거나 제거할 수 있습니다. 예를 들어, 위 코드에서는 결측치를 0으로 채우도록 처리했습니다. 이상치 또한 데이터 분석에 방해가 될 수 있으므로 적절한 조치를 취해야 합니다. 위 코드에서는 판매량이 1000 이상인 데이터를 제거하도록 처리했습니다.

데이터 정규화

# 데이터 정규화
df['normalized_sales'] = (df['sales'] - df['sales'].min()) / (df['sales'].max() - df['sales'].min())

# 결과 출력
print(df.head())

데이터 정규화는 데이터의 범위를 조정하여 다른 속성들과 일치하도록 만듭니다. 데이터 정규화는 일반적으로 모든 속성값을 [0, 1] 범위로 스케일링하는 작업을 수행합니다. 위 코드에서는 판매량을 정규화하여 ‘normalized_sales’ 열에 저장한 후 출력합니다.

데이터 시각화

import matplotlib.pyplot as plt

# 히스토그램 그리기
plt.hist(df['normalized_sales'], bins=10)
plt.title('Sales Distribution')
plt.xlabel('Normalized Sales')
plt.ylabel('Frequency')
plt.show()

마지막으로, 데이터를 시각화하여 분석 결과를 쉽게 확인할 수 있습니다. 위 코드에서는 히스토그램을 그리는 matplotlib 라이브러리를 사용하여 정규화된 판매량의 분포를 시각화했습니다. 그래프를 보면 데이터의 분포가 어떻게 되는지 한 눈에 확인할 수 있습니다.

결론

이번 블로그 포스트에서는 파이썬을 이용하여 데이터 전처리를 적용하는 샘플 프로젝트를 다뤘습니다. 데이터 전처리는 데이터 분석 및 머신 러닝 프로젝트에서 매우 중요한 과정이므로, 데이터를 가장 효율적으로 활용하기 위해 필수적으로 알아야 합니다. 다양한 전처리 기법과 도구를 익혀서 데이터 분석 역량을 향상시키길 바랍니다.