320x100
왜 결측치 탐색이 중요한가?
결측치(Null, NaN)는 데이터 분석 과정에서 반드시 확인해야 할 첫 번째 항목이다. 그대로 두면 모델 성능이 떨어지고 통계 분석 결과도 왜곡된다. 다행히 파이썬의 판다스(Pandas)는 결측치를 손쉽게 탐색하고 집계할 수 있는 함수를 제공한다. 그중 가장 직관적인 조합이 바로 아래 한 줄이다.
DataFrame.isnull().sum()
이 글에서는 이 한 줄이 왜 강력한지, 그리고 실무에서 어떻게 응용할 수 있는지 단계별로 정리한다.
1. isnull()로 결측치 위치 확인
import pandas as pd
data = {
'name': ['Alice', 'Bob', None, 'Dave'],
'age' : [25, None, 32, 29],
'city': ['Seoul', 'Busan', 'Incheon', None]
}
df = pd.DataFrame(data)
# 결측치 위치 확인
df.isnull().head()
isnull()은 각 셀을 스캔해 결측값이면 True, 아니면 False를 반환한다. 따라서 원본 데이터프레임과 동일한 형태의 불리언 행렬이 만들어진다.
2. sum()으로 컬럼별 결측치 개수 집계
파이썬에서는 True가 1, False가 0으로 처리된다. 따라서 isnull() 뒤에 sum()을 이어주면 컬럼별 결측치 개수가 계산된다.
df.isnull().sum()
예상 출력
name 1
age 1
city 1
dtype: int64
3. 행 기준 집계가 필요할 때
axis 인자를 1로 지정하면 각 행마다 결측치가 몇 개인지 확인할 수 있다.
df.isnull().sum(axis=1)
4. 시각화로 한눈에 보기
결측치가 많은 컬럼을 시각적으로 확인하면 우선순위를 정하기 쉽다.
import matplotlib.pyplot as plt
null_counts = df.isnull().sum().sort_values(ascending=False)
plt.figure(figsize=(6, 4))
null_counts.plot(kind='bar')
plt.title('Missing Values per Column')
plt.ylabel('Count')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
5. isnull() 외에 알아두면 좋은 함수
- isna() : isnull()과 기능이 동일하다.
- info() : 전체 행 개수·데이터 타입·결측치 유무를 빠르게 확인한다.
- dropna(), fillna() : 결측치 삭제·대체까지 한 번에 처리한다.
마무리
isnull().sum()은 짧지만 강력하다. 위치 확인 → 개수 집계 → 시각화 → 처리 전략 수립까지 한 번에 이어지는 깔끔한 워크플로를 제공한다. 앞으로 결측치를 만났을 때, 이 한 줄부터 먼저 실행해 보자. 데이터 정제 효율이 확 달라질 것이다.
320x100
320x100
'빅데이터 관련 자료' 카테고리의 다른 글
형태소 분석기 - (2) 종류 및 실습 (0) | 2021.11.10 |
---|---|
형태소 분석기 - (1) (0) | 2021.11.09 |
index=False, 데이터를 저장할 때 index 제외하고 저장 (0) | 2021.10.29 |
구글 애널리틱스 이해 - 디지털마케팅과 구글애널리틱스 (0) | 2021.10.12 |
랜딩페이지 UX/UI - A/B 테스트를 통한 최적화 실습 (0) | 2021.10.03 |