본문 바로가기

BLOG/데이터분석

[데이터 분석] 데이터 프레임 : 결측값(NaN) 있는 행/열 삭제하기 - dropna()

 

데이터분석을 하기 전 데이터 전처리를 할 때, 결측값(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' 열이 잘 삭제되었음을 확인할 수 있습니다.