
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.NA는np.nan과 같음 (Pandas는 현재 실수를 위한 확장 타입을 지원하지 않음).
| 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
'Python > pandas' 카테고리의 다른 글
| [Pandas] index 와 columns- 관련 메서드: rename(), set_index(), reset_index() (0) | 2025.08.24 |
|---|---|
| [Pandas] melt() 메서드 (2) | 2025.08.24 |
| [Pandas] unique(), value_counts(), nunique() (0) | 2025.08.23 |
| [Pandas] stack() 과 unstack() (0) | 2025.08.23 |
| [Pandas] 값 변경하기 - replace (0) | 2025.08.22 |