파이썬으로 3가지 데이터 클리닝 팁: 결측값, 이상치, 불일치 해결법

데이터는 현대 사회에서 가장 중요한 자산 중 하나로 자리하고 있습니다. 그러나 분석이 정확하려면 반드시 데이터 청결성(Data Cleaning)을 유지해야 합니다. 파이썬(Python)은 이를 지원하기 위한 강력한 도구이고, 이를 통해 결측값(Missing Values), 이상치(Outliers), 데이터 불일치(Inconsistencies)를 효과적으로 처리할 수 있습니다. 이번 가이드는 파이썬을 활용한 데이터 정리 팁과 실용적인 활용법을 안내합니다.

결측값(Missing Values) 해결하기: 간단하면서도 효과적인 접근법

데이터셋을 분석하기 전, "결측값(Missing Values)" 문제를 파악하여 해결하는 것은 필수적입니다. 누락된 데이터는 대부분의 분석 및 모델링 작업에서 오류를 초래할 수 있으므로, 이를 사전에 제거하거나 대체해야만 합니다.

결측값의 처리 방법은 다음과 같습니다:

  • 삭제(Drop): 데이터셋에 결측값이 일부에 국한될 경우, 결측이 포함된 행 또는 열을 삭제할 수 있습니다.
  • 대체(Imputation): 평균값, 중간값, 최빈값으로 결측값을 대체할 수 있습니다.
  • 모델이용(Model-Based): 예측 모델을 활용하여 누락된 값을 보완하는 방법입니다.

아래는 파이썬에서 결측값을 확인하고 처리하는 데 사용하는 코드의 예입니다:

```python import pandas as pd # 데이터 프레임 로드 data = pd.DataFrame({ '이름': ['김철수', '이영희', '박지훈'], '나이': [25, None, 30], '직업': ['학생', '프리랜서', None] }) # 결측값 확인 print(data.isnull()) # 결측값 제거 data_dropna = data.dropna() # 평균값으로 결측값 대체하기 (숫자 데이터에 한함) data['나이'].fillna(data['나이'].mean(), inplace=True) ```

다음은 결측값 처리 전후의 데이터 차이를 보여주는 표입니다:

구분 결측값 처리 전 결측값 처리 후
행 수 3 2
결측값 있는 열 2개 없음
평균 나이 27.5 (추정) 27.5 (실제)


이상치(Outliers) 처리: 데이터 정확성을 높이는 방법

이상치는 데이터를 왜곡하며 분석 결과에 큰 영향을 미치기에 이러한 데이터를 제대로 이해하고 처리하는 것이 중요합니다. 이상치란 데이터 값 중 특정 기준을 극단적으로 벗어나는 값을 의미합니다.

다양한 이상치 처리 방법:

  • IQR(Interquartile Range): 데이터 분포에서 IQR 범위를 벗어나는 값을 이상치로 간주합니다.
  • Z-Score: 특정 값이 표준편차 내외에서 얼마나 벗어나는지를 계산합니다.
  • 시각화: 구체적으로 Box Plot, Scatter Plot 등을 활용해 이상치를 파악합니다.

파이썬에서 이상치를 탐지하고 제거하는 코드는 다음 예제를 참고하세요:

```python import numpy as np # IQR 방식 이상치 탐지 예제 Q1 = data['나이'].quantile(0.25) Q3 = data['나이'].quantile(0.75) IQR = Q3 - Q1 # 이상치 조건 outliers = data[(data['나이'] < Q1 - 1.5 * IQR) | (data['나이'] > Q3 + 1.5 * IQR)] # 이상치 제거된 데이터 data_no_outliers = data[~data.isin(outliers)].dropna() ```

요소 평균 이전 평균 이후 이상치 수
나이 25 27 1개
소득 값 없음 값 없음 0개


데이터 불일치(Inconsistencies) 해결의 핵심

데이터 불일치란 동일한 데이터가 서로 다른 형태로 기록되는 문제를 일컫습니다. 예를 들어, "South Korea"와 "대한민국"이 동일한 데이터를 나타내지만 다르게 기록된 경우를 의미합니다.

데이터 불일치를 해결하는 기본적 방법은 다음과 같습니다:

  • 정규화(Normalization): 동일한 데이터를 일정한 형식으로 변환합니다. 예: "대한민국" → "South Korea".
  • 매핑(Mapping): 데이터를 매핑 테이블을 사용하여 일관성 있게 변환합니다.
  • 축소(Aggregation): 여러 값들을 하나로 합하여 불일치를 제거합니다.

아래는 데이터 불일치를 처리하는 파이썬 코드입니다:

```python # 데이터 불일치 처리 예시 data['국가'] = data['국가'].replace({ 'South Korea': 'KOR', '대한민국': 'KOR', '한국': 'KOR' }) ```

변환 전후의 데이터 차이는 다음 표에서 자세히 확인할 수 있습니다:

국가 처리 전 처리 후
국가1 South Korea KOR
국가2 대한민국 KOR
국가3 한국 KOR


데이터의 신뢰성을 높이고 활용도를 극대화하세요

이번 글에서는 데이터 클리닝의 3가지 핵심 요소, 즉 결측값, 이상치, 불일치를 문제로 설정하고 각각의 해결 방법을 파이썬에서 탐구했습니다. 올바른 데이터 전처리 작업은 데이터 분석과 예측의 정확성을 극대화하는 데 필수적입니다. 이제 해당 방법을 실습하고 적용하여 데이터를 더욱 효과적으로 활용해 보세요.

다음 이전