반응형
Python pandas isin / not isin
파이썬의 판다스 라이브러리에서 특정 목록 중에 있는 값들을 조회하고 싶은 경우
유용하게 사용할 수 있는 함수인 isin과 isin 함수의 반대 조건에 대한 사용 방법을
정리해보도록 하겠습니다.
이해를 돕기 위해서 다음과 같은 간단한 데이터프레임 df를 예시로 들어 설명하겠습니다.
import pandas as pd
a = {"반" : [1, 1, 2, 2, 3, 3], "이름" : ["가", "나", "다", "라", "마", "바"], "학점" : ["A", "B", "B", "C", "A", "D"]}
df = pd.DataFrame(a)
df
isin 함수 사용법
isin 함수는 df[열 이름].isin(목록 리스트) 형태로 사용해주시면 됩니다.
먼저, "반" 컬럼이 1 혹은 2인 경우에 대한 참 / 거짓 여부를 조회하는 경우는 다음과 같습니다.
df["반"].isin([1, 2])
# 결과
0 True
1 True
2 True
3 True
4 False
5 False
Name: 반, dtype: bool
반응형
이를 loc 함수를 활용한 조건 필터링과 결합하여 1반 혹은 2반인 행들만 가져올 수 있습니다.
df.loc[df["반"].isin([1, 2])]
문자열 값에 대해서도 isin을 마찬가지로 사용할 수 있습니다.
"학점" 컬럼이 "A" 혹은 "B"인 경우에 대한 조건 필터링도 아래처럼 해볼 수 있습니다.
df.loc[df["학점"].isin(["A", "B"])]
isin 함수 반대 조건 지정 방법
만일, isin과는 거꾸로 해당 목록에 포함되지 않은 값들을 조회하여 가져오고 싶은 경우에는
조건 앞에 ~를 붙여서 반대 조건을 의미해주시면 됩니다.
예를 들어, "학점" 열이 "A", "B"가 모두 아닌 경우만 필터링을 하는 경우는 다음과 같습니다.
df.loc[~(df["학점"].isin(["A", "B"]))]
'Python > Pandas' 카테고리의 다른 글
[Pandas] 파이썬 데이터프레임 랜덤 샘플링 방법 : df.sample (0) | 2022.09.27 |
---|---|
[Pandas] 파이썬 판다스 요일 추출 방법 정리(weekday, day_name(), 한글 요일 이름) (0) | 2022.08.23 |
[Pandas] 판다스 설치 / 버전 확인 / 버전 변경(업데이트, 다운그레이드) 방법 정리 (0) | 2022.08.15 |