본문 바로가기
Programming/Python

[Pandas] Null(결측치) 다루기

 

import numpy as np   # null값 삽입을 위한 numpy

# np.nan  <- df작성시에 넣을 수 있음.

df = pd.DataFrame([[np.nan, 2, np.nan, 0],
                   [3, 4, np.nan, 1],
                   [np.nan, np.nan, np.nan, 5],
                   [np.nan, 3, np.nan, 4]],
                  columns=list('ABCD'))

 

기본 확인: df.isnull().sum()  으로 확인 (isnull의 총 합 sum을 확인. 자주쓰는 공식수준)

A    3
B    1
C    4
D    0
dtype: int64

 

 

[하나라도 있으면 삭제하기]  하나라도 있으면 삭제라니? 실용성 없는듯? -_-

df.dropna()    Null이 존재하는 모든 행이나 열 삭제      (1개라도 존재하면 걍 그 행이나 열을 지움)

df.dropna(axis=0)   Null이 존재하는 모든 row 삭제

df.dropna(axis=1)   Null이 존재하는 모든 col 삭제   

 

 

 

[특정 값으로 대체하기]  fill + na -> fillna 함수   

df.fillna(특정값)           <- 특정값으로 채우기

df.fillna(method='ffill')   <-  이전값(앞선 값)으로 채우기

df.fillna(method='bfill')   <- 다음 값으로 채우기

df.fillna({'컬럼이름':'값', '컬럼이름':'값', ... })        <-   컬럼별 지정해서 특정 값 다르게 채우기

Ex)

df.fillna({'A':0,'B':1,'C':2,'D':3})     # 특정 값 지정(dict)로 채우기

df.fillna(df.mean())     # 평균값으로 채우기(컬럼별 평균값으로 채워진다.)

df.fillna(0, inplace=True)     # 결측치를 0으로 채우기 -> inplcae=True로 df에 반영

 

 

728x90
반응형