인공지능/파이썬

파이썬(Python) - null 처리

해피밀세트 2020. 3. 11. 16:55
반응형

 

 

import numpy as np

from numpy import nan as NA

 

 

null(결측값) 표현 방식

None null이다.

obj1 = Series([1,2,3,None,5])
obj2 = Series([1,2,3,np.nan,5])

 

obj3 = Series([1,2,3,NA,5])

 

 

 

결측값들의 데이터 타입

type(None)

type(np.nan)

type(NA)

 

 

null 체크하는 방법

obj1.isnull()

obj2.isnull()

obj3.isnull()

 

 

null이 아닌것 체크

obj1.notnull()

obj2.notnull()

obj3.notnull()

 

 

null인것만 뽑아내기

obj1[obj1.isnull()]

 

 

null이 아닌것만 뽑아내기

obj1[obj1.notnull()]

 


 

pandas로 null 다루기

 

isnull : null 체크 방법

null인것
pd.isnull(obj1)

null이 아닌것
pd.notnull(obj1)

 

 

fillna() : null값 채우기

obj1 = obj1.fillna(0)  #미리보기

obj1

 

 

dropna() : na값이 있는 행을 제거(!!주의해서 사용!!)

obj2 = obj2.dropna()   #미리보기

obj2

 

 

df = DataFrame([[1,2,3],[1,None,NA],[NA,NA,NA],[np.nan,2,3]])

df

 

 

열마다 다른 값으로 채우고 싶을때

fillna({}) : 특정한 열을 무엇으로 채울지({열이름 : 채울값})

df.fillna({0:0,1:10,2:20})

 

 

앞뒤의 값을 기준으로 채우기

df.fillna(method = 'ffill')        # 앞의값 채우기

df.fillna(method = 'pad')      # 앞의값 채우기

df.fillna(method = 'bfill')      # 뒤의값 채우기

df.fillna(method = 'backfill')  # 뒤의값 채우기

 

 

dropna() : na가 있는 행은 전부 제거

df.dropna()

 

 

행이 NA로 되어있는 행만 삭제

df.dropna(how = 'all', axis = 0)

 

 

열이 NA로 되어있는 열만 삭제

df[2] = NA

df.dropna(how = 'all', axis = 1)

 

반응형