빈 칸 채우기 : fillna()

30 P
QUESTION 05 #281
데이터가 누락된 부분(NaN)을 찾아 숫자 0으로 채워 넣는 코드를 완성하세요.
main.py
import pandas as pd
import numpy as np

df = pd.DataFrame({
    '이름': ['민수', '영희', '지우'],
    '포인트': [100, np.nan, 150]
})

# 결측치(NaN)를 0으로 채워 데이터의 누락을 방지합니다.
df['포인트'] = df['포인트'].(0)

print(df)
실행 결과 예시
   이름     포인트
0  민수  100.0
1  영희    0.0
2  지우  150.0
INTERACTIVE SHELL Shift + Enter 로 즉시 실행

fillna()로 결측값 채우기

실제 데이터에는 빈 칸(결측값, NaN)이 자주 존재합니다. 이를 적절한 값으로 채우는 것이 결측값 처리입니다.

NaN이란?

NaN"Not a Number"의 약자로, 데이터가 비어있음을 나타내는 특수한 값입니다.

import numpy as np
df = pd.DataFrame({
    '이름': ['민수', '서희', '지연'],
    '포인트': [100, np.nan, 150]
})
   이름   포인트
0  민수  100.0
1  서희    NaN   ← 빈 칸 (결측값)
2  지연  150.0

fillna() 사용법

df['포인트'] = df['포인트'].fillna(0)
채우기 전:          채우기 후:
   이름   포인트       이름   포인트
0  민수  100.0     0  민수  100.0
1  서희    NaN  →  1  서희    0.0  ← 0으로 채워짐
2  지연  150.0     2  지연  150.0

다양한 채우기 방법

코드 설명
df.fillna(0) 모든 NaN을 0으로
df['점수'].fillna(df['점수'].mean()) 해당 열의 평균으로
df.fillna(method='ffill') 바로 위의 값으로
df.fillna(method='bfill') 바로 아래의 값으로

NaN이 위험한 이유

# NaN이 있으면 계산 결과도 NaN!
100 + np.nan  →  nan
np.nan > 0    →  False

NaN이 포함된 데이터로 합계나 평균을 구하면 결과가 왜곡될 수 있습니다. 그래서 분석 전에 반드시 결측값을 처리해야 합니다.

💡 핵심: 결측값 처리는 데이터 분석의 첫 번째 단계입니다. fillna()로 채우거나 dropna()로 제거하세요.