PROGRESS
5 / 9
단원
넘파이(NumPy) 기초 13
데이터프레임 생성과 편집 9
데이터 탐색과 필터링 12
데이터 집계와 통계 13
데이터 시각화(matplotlib) 10
파일 입출력(CSV, Excel, JSON) 10
전체 목록
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)
HINT
힌트: 채우다(Fill)와 빈 데이터(NA)를 합친 이름의 함수는 fillna()입니다.
실행 결과 예시
이름 포인트 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()로 제거하세요.