[파이썬] pandas에서 결측치 처리 (dropna, fillna)

결측치 (missing data)는 데이터 분석에서 자주 발생하는 문제입니다. 결측치가 있는 데이터를 제대로 다루지 않으면 분석 결과에 왜곡이 발생할 수 있습니다. pandas는 결측치 처리를 간단하게 할 수 있는 여러 기능을 제공합니다. 이번 포스트에서는 pandas에서 결측치 처리를 하는 두 가지 메서드인 dropnafillna를 소개하겠습니다.

dropna 메서드

dropna 메서드는 결측치를 가진 행이나 열을 제거하는 기능을 제공합니다. 일반적으로 결측치가 많거나 중요한 데이터가 모두 없는 행이나 열을 제거하는데 사용됩니다.

다음은 dropna 메서드의 사용 예시입니다:

import pandas as pd

# 결측치가 포함된 데이터프레임 생성
data = {'A': [1, 2, None, 4, 5],
        'B': [None, 2, 3, 4, None],
        'C': [1, 2, 3, None, 5]}
df = pd.DataFrame(data)

# 결측치가 포함된 행 제거
df_dropna_rows = df.dropna()

# 결측치가 포함된 열 제거
df_dropna_cols = df.dropna(axis='columns')

결과:

   A    B    C
1  2  2.0  2.0

위의 예시에서 dropna 메서드를 사용하여 결측치가 포함된 행을 제거한 결과와 결측치가 포함된 열을 제거한 결과를 확인할 수 있습니다.

fillna 메서드

fillna 메서드는 결측치를 다른 값으로 대체하는 기능을 제공합니다. 주로 평균, 중간값 또는 사용자가 정의한 값을 사용하여 결측치를 대체하는데 사용됩니다.

다음은 fillna 메서드의 사용 예시입니다:

import pandas as pd

# 결측치가 포함된 데이터프레임 생성
data = {'A': [1, 2, None, 4, 5],
        'B': [None, 2, 3, 4, None],
        'C': [1, 2, 3, None, 5]}
df = pd.DataFrame(data)

# 평균값으로 결측치 대체
df_fillna_mean = df.fillna(df.mean())

# 중간값으로 결측치 대체
df_fillna_median = df.fillna(df.median())

# 사용자 정의 값으로 결측치 대체
df_fillna_custom = df.fillna(0)

결과:

     A    B    C
0  1.0  2.5  1.0
1  2.0  2.0  2.0
2  3.0  3.0  3.0
3  4.0  4.0  2.0
4  5.0  2.5  5.0

위의 예시에서 fillna 메서드를 사용하여 결측치를 평균값, 중간값 또는 사용자가 정의한 값으로 대체한 결과를 확인할 수 있습니다.

결론

pandas에서 제공하는 dropnafillna 메서드를 사용하면 결측치를 처리하는 작업을 간편하게 수행할 수 있습니다. 이러한 결측치 처리 기능을 효과적으로 활용하여 데이터 분석 작업을 수행하면 더 정확한 결과를 얻을 수 있습니다.