데이터 분석을 수행할 때, 결측치는 빈번하게 마주치는 문제 중 하나입니다. 특히 팬더스(Pandas)와 같은 데이터 처리 라이브러리를 사용할 때, 결측치를 적절히 처리하는 것은 데이터의 품질을 높이고 분석 결과의 신뢰성을 보장하는 데 필수적입니다. 이번 글에서는 팬더스를 이용해 결측치를 확인하고 처리하는 방법을 살펴보겠습니다.

결측치란?

결측치는 데이터셋에서 특정 값이 존재하지 않거나 누락된 경우를 의미합니다. 이는 데이터 수집 과정에서 오류가 발생했거나, 데이터 입력이 누락된 경우 등 다양한 원인으로 발생할 수 있습니다. 결측치가 있는 데이터는 분석 결과에 심각한 영향을 미칠 수 있으므로, 이를 처리하는 방법을 이해하는 것이 중요합니다.

팬더스에서 결측치 확인하기

팬더스의 DataFrame을 사용할 때, 결측치를 확인하는 메서드로는 isnull()과 isna()가 있습니다. 두 메서드는 동일한 기능을 하며, 결측치가 있는 경우 True를 반환합니다. 아래는 간단한 예제입니다.

import pandas as pd

data = {
    '이름': ['Alice', 'Bob', None, 'David'],
    '나이': [25, None, 30, 22],
    '도시': ['서울', '부산', None, '제주']
}

df = pd.DataFrame(data)

# 결측치 확인
print(df.isnull())

위 코드를 실행하면, 각 셀에 대해 결측치 여부가 True 또는 False로 출력됩니다.

결측치 시각화

결측치를 시각적으로 표현하는 방법으로는 missingno 라이브러리를 활용할 수 있습니다. 이 라이브러리를 사용하면 결측치의 분포를 쉽게 확인할 수 있습니다.

import missingno as msno
import matplotlib.pyplot as plt

# 결측치 시각화
msno.matrix(df)
plt.show()

이 코드는 결측치가 있는 데이터의 분포를 그래픽으로 보여줍니다. 이를 통해 어느 열에 결측치가 많은지 한눈에 알 수 있습니다.

결측치 처리 방법

결측치를 처리하는 방법은 여러 가지가 있습니다. 일반적으로 사용하는 방법으로는 결측치를 삭제하거나, 특정 값으로 대체하는 방법이 있습니다. 아래 두 가지 방법을 예시로 들어보겠습니다.

1. 결측치 삭제

결측치를 간단히 삭제하고자 할 때는 dropna() 메서드를 사용합니다. 이 메서드는 결측치가 있는 행을 삭제하며, 특정 열만을 기준으로 삭제할 수도 있습니다.

# 결측치가 있는 행 삭제
df_cleaned = df.dropna()
print(df_cleaned)

위 코드는 결측치가 있는 모든 행을 삭제하여 새로운 DataFrame을 생성합니다.

2. 결측치 대체

결측치를 삭제하는 대신, 특정 값으로 대체하는 방법도 있습니다. 이는 fillna() 메서드를 사용하여 수행할 수 있습니다. 예를 들어, 결측치를 0으로 또는 평균값으로 대체할 수 있습니다.

# 결측치를 0으로 대체
df_filled = df.fillna(0)
print(df_filled)

# 나이의 평균값으로 대체
mean_age = df['나이'].mean()
df['나이'] = df['나이'].fillna(mean_age)
print(df)

이 코드에서는 결측치를 0으로 대체한 DataFrame과, 나이 열의 결측치를 평균값으로 대체한 DataFrame을 각각 출력합니다.

결측치 처리 시 유의사항

결측치를 처리할 때는 몇 가지 유의사항이 있습니다. 첫째, 결측치가 많이 발생한 열은 분석에서 제외할 수도 있습니다. 둘째, 결측치를 대체할 때는 데이터의 분포를 고려해야 합니다. 예를 들어, 평균값으로 대체하는 방법은 데이터가 정규분포를 따를 때 효과적입니다. 반대로, 비정규분포인 경우에는 중앙값이나 최빈값을 사용하는 것이 더 나을 수 있습니다.

마무리

결측치는 데이터 분석의 주요 장애물 중 하나입니다. 팬더스를 통해 결측치를 확인하고 처리하는 방법을 알아보았습니다. 결측치를 적절히 처리하여 데이터의 품질을 높이는 것은 신뢰성 있는 분석 결과를 얻기 위한 필수 과정입니다. 다양한 방법을 활용해 자신의 데이터에 가장 적합한 결측치 처리 전략을 세우는 것이 중요합니다. 데이터 분석을 진행하는 모든 분들이 이러한 내용을 바탕으로 더욱 효과적으로 결측치를 다루기를 바랍니다.