본문 바로가기

BLOG/파이썬 기초

[파이썬] 데이터프레임(dataframe) 특정 조건을 만족하는 행 삭제하기 - drop()

데이터프레임으로 데이터를 가공할 때, 필요에 맞게 특정 조건을 만족하는 행을 삭제해야 하는 경우가 있습니다.

이때 drop() 함수를 사용하면 되는데요, 아래 예를 들면서 설명하도록 하겠습니다.

 

먼저, 아래와 같은 데이터프레임이 있다고 가정해보겠습니다.

 

import pandas as pd
info = pd.DataFrame({'item' : ['coffee', 'tea', 'juice', 'ade' ], 
                     'price' : [3000, 4000, 5000, 6000], 
                     'rating' : [4.0, 3.5, 3.7, 4.2]})
info

 

	item	price	rating
0	coffee	3000	4.0
1	tea	4000	3.5
2	juice	5000	3.7
3	ade	6000	4.2

 

이때, 이 데이터프레임에서 만약 'price'가 5000 이상인 행을 지우고 싶다면 아래와 같이 drop() 함수를 이용하여 코드를 작성하면 됩니다.

 

info.drop(info[info.price >= 5000].index)

 

	item	price	rating
0	coffee	3000	4.0
1	tea	4000	3.5

 

위 코드를 보면, drop() 안에 info[info.price >= 5000] 이 입력되어 있는데요, 이는 info 데이터프레임에 'price'라는 컬럼에서 5000 이상인 행을 지정하는 의미를 갖고 있습니다. 여기서 컬럼 이름 'price' 를 작성할 때 따옴표 또는 큰따옴표를 사용하지 않는답니다. 한편, 맨 뒤에 .index는 혹시나 행을 삭제함으로써 인덱스 번호가 순차적이지 않을 때 인덱스를 다시 정렬하는 코드입니다.

 

 drop() 안에 조건식에는 ">=" 말고도 다른 조건식을 사용할 수 있어, 상황에 맞게 적절한 조건식을 입력하시기 바랍니다 :D