PROGRESS
10 / 12
단원
넘파이(NumPy) 기초 13
데이터프레임 생성과 편집 9
데이터 탐색과 필터링 12
데이터 집계와 통계 13
데이터 시각화(matplotlib) 10
파일 입출력(CSV, Excel, JSON) 10
전체 목록
QUESTION 10 #298
데이터프레임의 특정 열에서 값이 비어있는(Null) 데이터를 찾아내고자 합니다. 빈칸을 채우세요.
main.py
import pandas as pd
import numpy as np
# 결제 수단이 누락된 주문 데이터
orders = pd.DataFrame({
'주문번호': [101, 102, 103, 104, 105],
'메뉴': ['아메리카노', '라떼', '스무디', '콜드브루', '밀크티'],
'결제수단': ['카드', np.nan, '카드', '현금', np.nan]
})
# 누락된 데이터 행만 추출
missing_orders = orders[orders['결제수단'].()]
print("\n누락된 주문서:")
print(missing_orders)
HINT
힌트: Null은 비어 있다는 의미입니다. "Null(비어있음) 인가요?"라고 묻는 isnull을 사용합니다.
실행 결과 예시
누락된 주문서: 주문번호 메뉴 결제수단 1 102 라떼 NaN 4 105 밀크티 NaN
INTERACTIVE SHELL
Shift + Enter 로 즉시 실행
isnull()로 결측값 찾기
실제 데이터에는 빈 칸(NaN)이 자주 존재합니다. isnull()은 어떤 데이터가 비어있는지 확인하는 함수입니다.
기본 문법
df["열이름"].isnull() # 각 행이 비어있으면 True
코드 동작 과정
missing_orders = orders[orders['결제수단'].isnull()]
1단계: orders["결제수단"].isnull() → True/False 판별
| 주문번호 | 메뉴 | 결제수단 | isnull() ? |
|---|---|---|---|
| 101 | 아메리카노 | 카드 | False |
| 102 | 라떼 | NaN | True |
| 103 | 스무디 | 카드 | False |
| 104 | 콜드브루 | 현금 | False |
| 105 | 밀크티 | NaN | True |
2단계: True인 행만 추출
주문번호 메뉴 결제수단
1 102 라떼 NaN
4 105 밀크티 NaN
isnull() vs notnull()
| 함수 | 의미 | True 조건 |
|---|---|---|
isnull() |
비어있는가? | NaN이면 True |
notnull() |
값이 있는가? | 값이 있으면 True |
# 결제수단이 비어있는 주문
orders[orders['결제수단'].isnull()]
# 결제수단이 입력된 주문
orders[orders['결제수단'].notnull()]
결측값 개수 확인
# 각 열별 결측값 개수
orders.isnull().sum()
# 주문번호 0
# 메뉴 0
# 결제수단 2 ← 2개 누락
결측값 처리 방법 정리
| 방법 | 함수 | 설명 |
|---|---|---|
| 찾기 | isnull() |
빈 칸 위치 확인 |
| 채우기 | fillna(값) |
빈 칸을 특정 값으로 채움 |
| 삭제 | dropna() |
빈 칸이 있는 행 삭제 |
💡 핵심:
isnull()은 결측값을 찾는 함수이고,fillna()와dropna()는 결측값을 처리하는 함수입니다.