BLOG/데이터분석
[데이터 분석] 데이터 프레임 : 결측값(NaN) 있는 행/열 삭제하기 - dropna()
알디노
2021. 3. 11. 10:39
데이터분석을 하기 전 데이터 전처리를 할 때, 결측값(NaN)이 있는 항목은 다른 값을 넣어주던가 해당 행을 삭제하는 것이 좋은데요, 만약, 결측값이 들어있는 행 전체를 삭제하고 싶다면 dropna() 함수를 사용하면 됩니다.
1. dropna() : 결측값이 들어있는 행 삭제하기
pandas 라이브러리에서는 결측값이 들어있는 행을 삭제하는 함수를 제공하는데요, 바로 dropna() 함수입니다.
먼저, 다음과 같은 데이터프레임이 있다고 가정해보겠습니다.
display(df)
item count price rating
0 coffee 1.0 3000 4.5
1 juice 5.0 4000 3.0
2 ade 2.0 5000 NaN
3 milk 4.0 2000 2.5
4 tea 3.0 4000 3.0
5 water NaN 1000 4.5
6 coke 4.0 2000 4.0
위 데이터프레임(df)을 보면, 2번째 행에 'rating' 칼럼에 결측값이 있고, 5행에 'count' 칼럼에 결측값이 있는 것을 확인할 수 있습니다. 이제 이 행들을 dropna() 함수로 삭제해보도록 하겠습니다.
row_df = df.dropna(axis=0)
display(row_df)
item count price rating
0 coffee 1.0 3000 4.5
1 juice 5.0 4000 3.0
3 milk 4.0 2000 2.5
4 tea 3.0 4000 3.0
6 coke 4.0 2000 4.0
삭제한 결과, 결측값이 있던 행들이 모두 삭제되었음을 확인할 수 있습니다.
2. dropna() : 결측값이 들어있는 열 삭제하기
dropna() 함수로 행 뿐만 아니라 결측값이 들어있는 열을 삭제할 수 있답니다. 위 코드에서 dropna() 함수 안에 'axis=0' 은 행을 의미하는데요, 이를 'axis=1'로 수정하면 결측값이 있는 열을 삭제하게 됩니다. 똑같이 코드를 입력해서 실행해보겠습니다. 예상대로라면 결측값이 있는 'count' 열과 'rating' 열이 삭제되어야 합니다.
row_df = df.dropna(axis=1)
display(row_df)
item price
0 coffee 3000
1 juice 4000
2 ade 5000
3 milk 2000
4 tea 4000
5 water 1000
6 coke 2000
실행 결과, 'count' 열과 'rating' 열이 잘 삭제되었음을 확인할 수 있습니다.