초보 개발자

7 결측치 ( 나도코딩 pandas ) 본문

Python/pandas

7 결측치 ( 나도코딩 pandas )

taehyeki 2022. 11. 6. 19:16

값이 없으면 NaN이 들어간다. 이럴 경우에 데이터 선택 및 조작에 있어 오류가 발생할 수 있기에

특정 값으로 바꿔주는 것이 좋다.

 

fillna

그중 하나가 fillna이다. 이건 모든 NaN값을 매개변수에 들어있는 값으로 바꾼다.

기존에 SW에 NaN값이 두개 있었는데 이를 공백으로 바꿔주었다.

 

모든 값이 공통된 값으로 변경되다보니 유연성이 떨어진다.

컬럼명을 지정해주면 그 컬럼에 대해서만 값이 변경된다.

 

먼저 학교 컬럼을 다 NaN으로 바꿔주었다.

fillna만 사용하면 모든 값이 바뀌지만

컬럼을 지정해주면 그 특정 컬럼의 NaN값만 바뀐다.

 

dropna

다시 처음으로 돌아와서 dropna를 사용하면 값 중 하나라도 NaN값이 들어있다면 그 행을 삭제시켜 버린다.

 

이번엔 dropna의 옵션에 대해 알아보자

axis : index, columns

how : any , all

옵션은 axis와 how가 있다.

 

axis는 index는 행, columns는 열을 나타낸다. 위에서 데이터가 지워진 이유는

default 값이 axis는 index, how는 any이기 때문에 아무 옵션을 주지 않았지만 지워진 것이다.

행이 지워지거나 열이 지워지게 된다.

 

how는 any는 NaN값이 하나라도 있으면 삭제를 하고, all은 모든 값이 NaN이어야 삭제를한다.

how옵션을 all로 주었더니, 행이 지워지지 않은 것을 확인할 수 있다.

행의 모든 값이 NaN이 아니기 때문이다.

이번에는 모든 값이 NaN인 열 값을 지우는 명령어를 했기에

school열이 아예사라진 것을 확인할 수 있다.

 

any를 주면 당연히 sw열도 사라지게 될 것이다.