반응형
CS 면접 준비하다가 나온 질문
데이터를 다루는 학과다 보니 결측치를 다루는게 항상 고민인데
한 번도 글로 작성해본 적 이 없어서 한 번 작성해 볼 까 한다
결측치란?
간단히 말해서 값이 비어 있는 상태
예를 들어, 설문조사에서 어떤 응답자가 ‘나이’를 입력하지 않았다면, 그 항목은 결측치로 남게 된다
import pandas as pd
df = pd.DataFrame({
'이름': ['철수', '영희', '민수'],
'나이': [25, None, 30]
})
print(df)
결과 :
이름 나이
0 철수 25.0
1 영희 NaN
2 민수 30.0
결측치는 왜 생길까?
- 사용자가 값을 입력하지 않음 (설문조사, 가입 폼 등)
- 시스템 오류로 누락됨
- 데이터 수집 범위에 포함되지 않음 (예: 성인만 대상인데 미성년자 항목 포함 등)
- 병합/조인 과정에서 생긴 누락
결측치는 어떻게 처리할까?

1️⃣ 결측치 확인하기
df.isnull().sum()
-> 각 컬럼별로 몇 개의 결측치가 있는지 알려준다
2️⃣ 제거하기 (Drop)
df.dropna()
-> 모든 컬럼 기준으로 결측치가 있는 행을 제거
-> 선택적으로 특정 컬럼 기준으로만 제거할 수 있다
3️⃣ 대체하기 (Fill)
df['나이'].fillna(df['나이'].mean(), inplace=True)
-> 연속형 숫자 데이터에는 평균, 중앙값 추천
-> 범주형 데이터에는 최빈값 사용
4️⃣ 예측 모델로 결측치 채우기
조금 고급 기술이에요. 다른 변수들을 활용해서 결측치를 예측하는 모델을 학습시켜 채울 수 있다
RandomForest, KNN 등 다양한 모델이 가능
-----------------------------------------------------------------------------------------------------------------------------
결측치 처리할 때 보통
평균적으로 평균이나 중앙값을 많이 사용하는 것 같다
반응형
'Data Anlaytist' 카테고리의 다른 글
A/B 테스트가 왜 필요할까? (3) | 2025.03.26 |
---|---|
vscode 소스 제어 활용 / 병합 충돌 해결하기 (0) | 2025.02.06 |
melt()를 활용한 데이터 변환과 플롯 시각화 (0) | 2025.02.05 |
주피터 마크다운 정리 ( 제목, 글꼴, 목록, 링크, 코드, 구분선, 테이블, 체크박스 등) (0) | 2024.12.24 |
대시보드 시각화 툴 (1) | 2024.11.21 |