본문 바로가기
Python

[Python] Pandas dataframe 'isin' & 'not in' 사용법

by mine-dong 2021. 11. 29.

1. IN

데이터 프레임 A와 B에서 공통되는 부분을 찾고 싶은 경우 in 을 사용할 수 있다.

간단한 예제를 통해 in을 사용하는 경우를 살펴보자

A = pd.DataFrame({'fruits': ['strawberry', 'banana', 'cranberry', 'apple', 'orange']
	, 'price': ['1000', '2000', '1500', '500', '2500']})
B = ['strawberry', 'cranberry']

A는 fruits, price 두 개의 열로 이루어진 데이터 프레임 이며, B는 리스트이다. 

A의 fruits에서 B에 있는 과일만 골라서 보고싶은 경우, 아래처럼 코드를 작성할 수 있다.

df = A[A.fruits.isin(B)]

위 코드를 작성할 경우 B에 속해있는 과일들로 이루어지고 fruits, price 두 행을 가진 데이터 프레임이 df에 저장된다.

여기서 주의할 점은 B는 리스트 형태여야 한다는 점이다.

 


1. NOT IN

위와 똑같은 데이터 프레임에서 not in 을 하고 싶은 경우를 생각해 보자.

A 데이터 프레임에서 B 리스트에 속한 과일을 제외한 데이터 프레임을 보고싶은 경우, 아래 코드로 해결할 수 있다.

df = A[~A.fruits.isin(B)]

in인 경우와 다른 점은 시작 대괄호 뒤에 ~이 붙은 것이다.

물결을 붙이면 not in 을 하는 코드가 된다. 

결과는 위와 같이 fruits, price 두 행을 가진 데이터 프레임이 df에 저장되고 결과는 isin 과 반대의 결과가 나온다.