⚙️ Tech/Pandas

[pandas] 결측값 처리 (isnull, isna, dropna, fillna)

fiftyline 2025. 2. 9. 14:39

 

pandas에서 결측값을 처리할 때 사용하는 메소드를 정리한다.

 

 

먼저 데이터를 불러온다.

import pandas as pd
df =  pd.DataFrame({'col1':[1,2,2,3,3,None], 
               'col2':['A','A','B','D',None,None]})

 

isnull() (=isna())

1. NA 여부 판단(T/F)

df.isnull()
df.isna()

 

index col1 col2
0 false false
1 false false
2 false false
3 false false
4 false true
5 true true

 

df.notnull() #결과 반대로 출력
df.notna() #결과 반대로 출력

 

2. NA개수 확인

df.isnull().sum() #isnull.sum(axis=0)
df.isna().sum()
> col1    1
  col2    2

 

dropna()

결측값 제거

df.dropna() #df.dropna(axis=0, how="all")
# NA가 포함된 모든 행 제거
df.dropna(axis=1)
# NA가 포함된 모든 열 제거
df.dropna(how="all")
# 모두 NA인 행 제거

df.dropna(inplace=True)
# df원본에서 na제거

#default
df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

 

fillna()

결측값 대체

df.fillna(0)
# NA를 0으로 대체
df.fillna(df.mean())
# NA를 평균으로 대체 = df.where(pd.notnull(df), df.mean(), axis='columns')