군침이 싹 도는 코딩

Python pandas NaN 처리 방법 (isna,notna,fillna,dropna) 본문

Python/Pandas

Python pandas NaN 처리 방법 (isna,notna,fillna,dropna)

mugoori 2022. 11. 24. 15:00

위 데이터 프레임으로 NaN 처리 방법을 알아보자

 

 

 

비어있는 데이터가 어디에 몇개가 있는지 알아보는법

df.isna().sum()
>>> bikes      0
    pants      0
    watches    0
    shirts     1
    shoes      0
    suits      1
    glasses    1
    dtype: int64

df.isna().sum().sum()
>>> 3

# isna() 함수를 통해 비어 있는 데이터가 있는지 확인할수있다 그 후에 sum() 함수를 사용하면 컬럼별 비어있는 데이터 갯수를 알려주며 한번 더 사용하면 총합을 알려준다.

 

 

반대로 데이터가 있는곳을 물어볼수도있다

#이때는 notna() 를 사용

 

 

NaN 을 삭제하는법

# dropna() 함수를 사용해 비어 있는 데이터가 있는 행을 모두 삭제한다

 

 

 

특정값으로 채우는법

# fillna()함수를 사용해 안에 채우고싶은 파라미터를 입력하면 해당값으로 비워있는 데이터가 채워진다

 

 

 

위/아래/왼쪽/오른쪽 데이터로 채우는법

#fillna() 함수를 사용 안에 파라미터에 method='ffill' 과 axis 0 을 넣어 위쪽 데이터값을 가져왔다.

글래시스는 위쪽 데이터가 없으므로 그대로 NaN으로 비어있다

 

 

#fillna() 함수를 사용 안에 파라미터에 method='bfill' 과 axis 0 을 넣어 아래쪽 데이터값을 가져왔다.

셔츠와 슈트는 아래쪽 데이터가 없으므로 NaN으로 표기된다

 

 

# 왼쪽과 오른쪽 역시 fillna() 함수를 사용해 파라미터에 왼쪽 ffill 오른쪽 bfill을 쓴 후 axis 1을 입력한다

 

 

연산값을 넣는법

# fillna() 함수의 파라미터값을 df의 평균을 구하는 df.mean() 을 넣어 빈곳에 각 컬럼별 평균값을 넣었다

평균뿐 아니라 최대(max) 최소(min) 등의 연산값을 구하는 함수도 넣을수있다