> 백엔드 개발 > 파이썬 튜토리얼 > 'IN' 및 'NOT IN' 연산자를 사용하여 Pandas DataFrame을 효율적으로 필터링하려면 어떻게 해야 합니까?

'IN' 및 'NOT IN' 연산자를 사용하여 Pandas DataFrame을 효율적으로 필터링하려면 어떻게 해야 합니까?

Barbara Streisand
풀어 주다: 2024-12-29 16:22:19
원래의
838명이 탐색했습니다.

How Can I Efficiently Filter Pandas DataFrames Using

"In" 및 "Not In"을 사용하여 Pandas 데이터 프레임 필터링: 더 간단한 솔루션

Pandas 데이터 프레임으로 작업할 때 종종 필요한 경우가 있습니다. 특정 기준에 따라 데이터를 필터링합니다. 일반적인 요구 사항 중 하나는 SQL "IN" 및 "NOT IN" 연산자와 유사하게 특정 열이 미리 정의된 값 집합과 일치하거나 일치하지 않는 행을 찾는 것입니다.

병합의 대안 기반 접근 방식

전통적으로 일부 사용자는 이러한 필터링을 달성하기 위해 병합 기반 접근 방식을 사용해 왔습니다. 이 방법은 기능적이지만 비효율적이고 불필요하게 복잡한 것으로 간주됩니다.

pd.Series.isin 사용

이상적인 솔루션은 pd.Series.isin 기능을 활용하는 것입니다. "IN" 및 "NOT IN" 필터링 모두에 대한 간단한 기능을 제공합니다.

"IN" 필터링

특정 열이 목록의 값과 일치하는 행을 필터링하려면 제공된 목록, 사용:

something.isin(somewhere)
로그인 후 복사

"NOT IN" 필터링

또는 열 값이 주어진 목록의 어떤 값과도 일치하지 않는 행을 필터링하려면 다음을 사용하세요.

~something.isin(somewhere)
로그인 후 복사

사용 예

다음 사항을 고려하세요 예:

df = pd.DataFrame({'country': ['US', 'UK', 'Germany', 'China']})

countries_to_keep = ['UK', 'China']

df_in = df[df.country.isin(countries_to_keep)]
df_not_in = df[~df.country.isin(countries_to_keep)]

print(df_in)
print(df_not_in)
로그인 후 복사

출력:

    country
1        UK
3     China
    country
0        US
2   Germany
로그인 후 복사

시연된 바와 같이 pd.Series.isin은 Pandas 데이터 프레임을 필터링하기 위한 간결하고 효율적인 방법을 제공합니다. 복잡한 병합 기반 접근 방식이 필요하지 않으므로 필터링 프로세스가 더 단순해지고 성능이 향상됩니다.

위 내용은 'IN' 및 'NOT IN' 연산자를 사용하여 Pandas DataFrame을 효율적으로 필터링하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿