본문 바로가기
목차
Python/pandas

[Pandas] missing value 확인: 결측치 확인

by ds31x 2025. 8. 24.
728x90
반응형

https://datascienceparichay.com/article/get-rows-with-nan-values-in-pandas/?

 

Pandas 는 missing value (정확하게는 NA) 여부를 확인하는 다음의 메서드를 지원:

  • isnull()
  • isna()

Note:

isnull()  isna()는 기능적으로 동일함: NumPy의 ndarray가 지원하는 isnan() 기반.
Pandas 0.20.0 버전부터 isnull()의 별칭(alias)으로 isna()가 추가됨.


결측치 타입

Pandas는 NumPy의 ndarray에 기반을 두고 있기 때문에 float64의 실수 데이터의 경우 missing value를 np.nan으로 처리함.

  • 단, Pandas 1.0+ 에서 사용가능한 pd.NA ( __repr__()메서드로 <NA>라고 출력됨) 가 Pandas에서 일관된 결측치 처리에 보다 유용함.
  • pd.NA는 Pandas의 확장 dtype인 (Int64, string, booelan, category)와 함께 사용가능하며,
  • Pandas에서 실수를 다룰 때는 NumPy의 float64를 그대로 쓰며, 이 경우 pd.NAnp.nan과 같음 (Pandas는 현재 실수를 위한 확장 타입을 지원하지 않음). 
Pandas에서 None, np.nan, pd.NA 변환 결과
dtype 입력타입 최종 저장타입 dtype 유지여부 desc.
float64 None np.nan float64 유지 Python None → 자동 변환
float64 np.nan np.nan float64 유지 원래부터 NaN
float64 pd.NA np.nan float64 유지 pd.NA → 강제 변환
Int64 (확장 dtype) None <NA> Int64 유지 pd.NA와 동일하게 처리
Int64 (확장 dtype) np.nan <NA> Int64 유지 np.nan도 변환됨
Int64 (확장 dtype) pd.NA <NA> Int64 유지 권장 사용
string (확장 dtype) None <NA> string 유지 자동 변환
string (확장 dtype) np.nan <NA> string 유지 NaN도 <NA>로 변환
string (확장 dtype) pd.NA <NA> string 유지 권장 사용
object None None object 유지 None 그대로 저장
object np.nan np.nan object 유지 np.nan 그대로 저장
object pd.NA <NA> object 유지 Pandas가 pd.NA 객체 저장

 


Details:

  • 기능적 차이:.
    • 두 메서드 모두 DataFrame 이나 Series 의 각 요소가 NA인지 확인
    • Boolean(True/False) mask 형태의 동일한 결과를 반환.
  • 용어적 차이:
    • isnull()은 'is null'의 약어
    • isna()는 'is NA'의 약어.

NA(Not Available)는 '결측값'을 의미하는 보다 포괄적인 통계 용어.
Pandas는
NumPy와 R과의 호환성을 높이기 위해 isna()를 추가.


Example

두 메서드는 완전히 동일하게 사용할 수 있음.

import pandas as pd
import numpy as np

# Create a sample DataFrame with missing values
df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [4, np.nan, 6]})

# Using isnull()
print("Using isnull():")
print(df.isnull())

# Using isna()
print("\nUsing isna():")
print(df.isna())

 

위 코드를 실행하면 isnull()isna() 모두 동일한 결과를 출력:

Using isnull():
      A      B
0  False  False
1  False   True
2   True  False

Using isna():
      A      B
0  False  False
1  False   True
2   True  False

결측치의 갯수를 구하는 방법은 다음과 같은 chaining을 이용함.

df.isna().sum()

위의 경우 각 column에서의 NA의 갯수를 반환함 (True를 1로 처리하는 특성을 이용)


같이 보면 좋은 자료들

2025.05.16 - [Python/pandas] - [ML] pandas.DataFrame 에서 EDA에 적합한 메서드 요약

 

[ML] pandas.DataFrame 에서 EDA에 적합한 메서드 요약

Pandas DataFrame에서 탐색적 데이터 분석(EDA)에 사용할 수 있는 주요 메서드들은 다음과 같음:2024.05.18 - [분류 전체보기] - [ML] Exploratory Data Analysis (EDA) [ML] Exploratory Data Analysis (EDA)Exploratory Data Analysis (

ds31x.tistory.com

 

728x90