본문 바로가기

BLOG/데이터분석

[데이터분석] 데이터프레임 : 특정 조건 만족하는 행 삭제하기 - drop()

이전 글에서는 특정 조건을 만족하는 행을 추출하고, 해당되는 인덱스를 반환하는 방법에 대해서 살펴보았는데요, 이번 글에서는 특정 조건을 만족하는 행을 삭제하는 방법에 대해서 살펴보도록 하겠습니다.

 

 

1. 특정 조건 만족하는 행의 인덱스 찾기

특정 조건을 만족하는 행을 삭제하기 위해선, 해당되는 행의 인덱스를 알아야 이를 이용해서 삭제할 수 있는데요, 먼저, 인덱스를 찾는 방법에 대해서 살펴보도록 하겠습니다.

 

아래와 같은 데이터 프레임이 있다고 가정할 때,

 

	temp	item	count	price	rating
0	hot	coffee	1	3000	4.5
1	ice	juice	5	4000	3.0
2	ice	ade	2	5000	4.0
3	hot	milk	1	3000	2.5
4	hot	tea	3	4000	3.0
5	ice	water	2	1000	4.5

 

만약 'price' 칼럼에 있는 데이터가 4000 이상인 행을 지우고자 할 때, 이에 해당되는 인덱스를 반환하는 코드는 다음과 같습니다.

 

index1 = df[df['price'] >= 4000].index
print(index1)

 

Int64Index([1, 2, 4], dtype='int64')

 

반환할 인덱스를 index1 이라는 변수에 저장해 이를 출력했더니 [1, 2, 4]과 같이 조건을 만족하는 행의 번호가 저장된 것을 확인할 수 있습니다.

 

 

 

1. 특정 조건 만족하는 행 삭제하기 - drop()

특정 조건을 만족하는 행의 인덱스 번호를 알았다면, 이제 이를 이용해서 삭제하면 되는데요,

drop() 함수를 사용해서 지울 수 있습니다. 사용법은 다음과 같은데요, drop() 함수 안에 반환된 인덱스 번호 리스트를 인자로 넣어주면 됩니다.

 

df.drop(index1)

 

	temp	item	count	price	rating
0	hot	coffee	1	3000	4.5
3	hot	milk	1	3000	2.5
5	ice	water	2	1000	4.5

 

삭제한 결과, price가 4000 이상인 행이 모두 삭제되었음을 확인할 수 있답니다.