부울 열을 사용하여 pandas dataframe을 필터링하는 방법


다음 방법을 사용하여 부울 열 값을 기반으로 Pandas DataFrame의 행을 필터링할 수 있습니다.

방법 1: 부울 열을 기반으로 DataFrame 필터링

 #filter for rows where value in 'my_column' is True
df. loc [df. my_column ]

방법 2: 여러 부울 열을 기반으로 DataFrame 필터링

 #filter for rows where value in 'column1' or 'column2' is True
df. loc [df. column1 | df. column2 ]

다음 예에서는 다음 pandas DataFrame에서 실제로 각 메서드를 사용하는 방법을 보여줍니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G'],
                   ' points ': [18,20, 25, 40, 34, 32, 19],
                   ' all_star ': [True, False, True, True, True, False, False],
                   ' starter ': [False, True, True, True, False, False, False]})

#view DataFrame
print (df)

  team points all_star starter
0 A 18 True False
1 B 20 False True
2 C 25 True True
3 D 40 True True
4 E 34 True False
5 F 32 False False
6 G 19 False False

예 1: 부울 열을 기반으로 DataFrame 필터링

다음 구문을 사용하여 all_star 열의 값이 True인 행만 포함하도록 pandas DataFrame을 필터링할 수 있습니다.

 #filter for rows where 'all_star' is True
df. loc [df. all_star ]

	team points all_star starter
0 A 18 True False
2 C 25 True True
3 D 40 True True
4 E 34 True False

DataFrame은 all_star 열의 값이 True인 행만 포함하도록 필터링되었습니다.

대신 all_star가 False인 행을 필터링하려면 열 이름 앞에 물결표( ~ )를 입력하면 됩니다.

 #filter for rows where 'all_star' is False
df. loc [ ~ df. all_star ]

        team points all_star starter
1 B 20 False True
5 F 32 False False
6 G 19 False False

이제 DataFrame은 all_star 열의 값이 False인 행만 포함하도록 필터링되었습니다.

예 2: 여러 부울 열을 기반으로 DataFrame 필터링

다음 구문을 사용하여 pandas DataFrame을 필터링하여 all_star또는 시작 열의 값이 True인 행만 포함할 수 있습니다.

 #filter for rows where 'all_star' or 'starter' is True
df. loc [df. all_star | df. starter ]

        team points all_star starter
0 A 18 True False
1 B 20 False True
2 C 25 True True
3 D 40 True True
4 E 34 True False

DataFrame은 all_star 또는 starter 열의 값이 True인 행만 포함하도록 필터링되었습니다.

all_starstarter 열의 값이 True인 행을 필터링하려면 | 대신 & 연산자 사용할 수 있습니다. 운영자:

 #filter for rows where 'all_star' and 'starter' is True
df. loc [df. all_star & df. starter ]

	team points all_star starter
2 C 25 True True
3 D 40 True True

이제 DataFrame은 all_star starter 열의 값이 True인 행만 포함하도록 필터링되었습니다.

관련 항목:Pandas에서 loc와 iloc의 차이점

추가 리소스

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

Pandas: 부울 계열을 사용하여 DataFrame에서 행 선택
Pandas: 조건에 따라 부울 열을 만드는 방법
Pandas: 부울 값을 정수 값으로 변환하는 방법

의견을 추가하다

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