Pandas에서 "not in" 필터를 사용하는 방법(예제 포함)


다음 구문을 사용하여 Pandas DataFrame에서 “NOT IN” 필터를 수행할 수 있습니다.

 df[ ~ df[' col_name ']. isin (values_list)]

Values_list 의 값은 숫자 값 또는 문자 값일 수 있습니다.

다음 예에서는 이 구문을 실제로 사용하는 방법을 보여줍니다.

예 1: 열을 사용하여 “NON IN” 필터 수행

다음 코드는 팀 이름이 이름 목록에 없는 행에 대해 Pandas DataFrame을 필터링하는 방법을 보여줍니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'],
                   ' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#define list of teams we don't want
values_list = [' A ', ' B ']

#filter for rows where team name is not in list
df[ ~ df[' team ']. isin (values_list)]

        team points assists rebounds
6 C 25 9 9
7 C 29 4 12

다음 코드는 “points” 열에 특정 값이 포함되지 않은 행에 대해 Pandas DataFrame을 필터링하는 방법을 보여줍니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'],
                   ' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#define list of values we don't want
values_list = [12, 15, 25]

#filter for rows where team name is not in list
df[ ~ df[' team ']. isin (values_list)]

	team points assists rebounds
3 B 14 9 6
4 B 19 12 6
5 B 23 9 5
7 C 29 4 12

예 2: 여러 열에 대해 “NON IN” 필터 수행

다음 코드는 특정 팀 이름이 여러 열 중 하나에 없는 행에 대해 Pandas DataFrame을 필터링하는 방법을 보여줍니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' star_team ': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'],
                   ' backup_team ': ['B', 'B', 'C', 'C', 'D', 'D', 'D', 'E'],
                   ' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#define list of teams we don't want
values_list = [' C ', ' E ']

#filter for rows where team name is not in one of several columns
df[ ~ df[[' star_team ', ' backup_team ']]. isin (values_list). any (axis= 1 )] 

        star_team backup_team points assists rebounds
0 A B 25 5 11
1 A B 12 7 8
4 B D 19 12 6
5 B D 23 9 5

“star_team” 열이나 “backup_team” 열에 “C” 또는 “E” 팀이 나타나는 모든 행을 필터링했습니다.

추가 리소스

다음 튜토리얼에서는 Pandas에서 다른 일반적인 필터링 작업을 수행하는 방법을 설명합니다.

Pandas에서 “Is Not Null”을 사용하는 방법
열 값으로 Pandas DataFrame을 필터링하는 방법
Pandas DataFrame 행을 날짜별로 필터링하는 방법
여러 조건에서 Pandas DataFrame을 필터링하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다