본문 바로가기
Python/Pandas

[Python] Pandas DataFrame NaN값 처리하기 isna(), notna(), dropna(), fillna()

by coding_su 2022. 11. 24.

📝파이썬 판다스 데이터프레임 NaN값 처리하기 (확인, 삭제, 추가, 변경)

NaN? 값이 없을 때의 값 ( = null)

 

df.isna() : 비어있는 데이터 갯수를 파악한다

# 해당 데이터프레임에 비어있는 값을 True로 나타낸다
>>> df.isna()

# .sum()을 입력시 각 컬럼별로 비어 있는 값을 알려준다
>>> df.isna().sum()

# .sum()을 두번 입력시 총 값(비어있는 총 갯수)을 알려준다
>>> df.isna().sum().sum()

df.notna() : 비어있지 않은 데이터 갯수를 파악한다 (isna() 함수의 반대)

df.dropna() : NaN이 들어있는 행을 삭제한다

# NaN이 들어있는 행을 삭제한다
>>> df.dropna()

df.fillna(a) : NaN을 a 의 데이터로 채운다

# 해당 데이터 프레임의 모든 NaN값을 0으로 채움
>>> df.fillna(0)
# 0말고 다른 데이터 입력시 해당 데이터로 바뀜

# 특정 컬럼의 NaN만 변경시 해당 컬럼 엑세스
>>> df['컬럼'].fillna(0)

# 파라미터에 df.mean() 함수를 입력하면 각 컬럼별로 계산한 평균값을 NaN에 입력해준다
>>> df.fillna(df.mean())

# max() 함수를 넣어주면 컬럼별로 최대값을 NaN에 입력해준다
>>> df.fillna(df.max())

# 데이터 프레임이 숫자로만 된게 아닐경우 (numeric_only=True) 입력하면 숫자 데이터만 계산해준다
>>> df.fillna(df.mean(numeric_only=True))

df.fillna(method='a', axis= 0 (혹은 1)) : NaN을 위 행, 아래 행, 왼쪽 열, 오른쪽 열의 데이터로 변경한다

a에 입력하는 ' ffill ' 은 위, 왼쪽,  ' bfill ' 은 아래, 오른쪽

# NaN 위의 행 데이터를 가져옴
>>> df.fillna(method='ffill', axis= 0)

# NaN 왼쪽 열의 데이터를 가져옴
>>> df.fillna(method='ffill', axis= 1)

# NaN 밑의 행 데이터를 가져옴
>>> df.fillna(method='bfill', axis= 0)

# NaN 오른쪽 열의 데이터를 가져옴
>>> df.fillna(method='bfill', axis= 1)

 

댓글