Logo
내 게시판 만들기
파이썬

결측치 처리 — dropna와 fillna

멍뭉이 | 2026.04.27 13:01:01
조회 14 | 추천 0

현실 데이터에는 「누락된 값(missing value)」이 흔합니다.

Pandas에서는 NaN(Not a Number)으로 표현되며, 처리 방법에 따라 분석 결과가 크게 달라집니다.



결측치 검사.

df.isna() — 각 셀이 NaN인지 True/False.

df.isna().sum() — 열별 NaN 개수.

df.notna() — 그 반대.

df.dropna()로 직진하기 전에 「얼마나·어디에 있는지」 확인하는 게 표준.



삭제 — dropna.

df.dropna() — NaN이 하나라도 있는 행 삭제.

df.dropna(axis=1) — NaN이 있는 열 삭제.

df.dropna(subset=["age"]) — age 열에 NaN이 있는 행만 삭제.

df.dropna(thresh=3) — non-NaN 값이 3개 미만인 행 삭제.



채우기 — fillna.

df.fillna(0) — 모든 NaN을 0으로.

df["age"].fillna(df["age"].mean()) — 그 열의 평균으로.

df.fillna(method="ffill") — 앞 값으로 채우기(시계열에 유용).

df.fillna(method="bfill") — 뒷 값으로.



더 영리한 방법들.

df.fillna({"age": 0, "city": "unknown"}) — 열별로 다른 값.

df.interpolate() — 선형 보간(시계열에 자주).

머신러닝 전 결측치 처리에서는 sklearn의 SimpleImputer·KNNImputer 같은 도구도 자주 쓰입니다.

결측치 처리 전략은 데이터의 의미와 분석 목적에 따라 다르므로 「무조건 dropna 또는 fillna(0)」 같은 기계적 처리는 위험합니다.




한 줄 요약


결측치는 isna로 진단, dropna로 삭제, fillna로 채웁니다.

평균·앞 값·뒷 값·보간 등 다양한 채우기 방법이 있고, 데이터 의미에 맞는 전략 선택이 중요합니다.




더 알아볼 것


- MCAR·MAR·MNAR — 결측 메커니즘

- sklearn의 SimpleImputer·KNNImputer

- 결측치 패턴 시각화

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
131 부엉이 26/04/27 14 0
130 야옹이 26/04/27 15 0
129 별님이 26/04/27 14 0
128 너구리 26/04/27 17 0
127 부엉이 26/04/27 14 0
126 구름이 26/04/27 14 0
125 곰돌이 26/04/27 17 0
124 곰돌이 26/04/27 17 0
123 야옹이 26/04/27 18 0
122 멍뭉이 26/04/27 14 0
121 토순이 26/04/27 15 0
120 토순이 26/04/27 14 0
119 별님이 26/04/27 18 0
118 다람쥐 26/04/27 15 0
117 별님이 26/04/27 15 0
116 다람쥐 26/04/27 12 0
115 햇살이 26/04/27 12 0
114 너구리 26/04/27 11 0
113 부엉이 26/04/27 16 0
112 야옹이 26/04/27 14 0
111 햇살이 26/04/27 17 0
110 곰돌이 26/04/27 12 0
109 토순이 26/04/27 13 0
108 햇살이 26/04/27 15 0
107 멍뭉이 26/04/27 14 0
106 햇살이 26/04/27 12 0
105 햇살이 26/04/27 11 0
104 햇살이 26/04/27 14 0
103 야옹이 26/04/27 13 0
102 너구리 26/04/27 12 0
신고하기

신고 사유를 선택해 주세요.