Pandas: dataframe의 모든 열에서 문자열 검색
다음 구문을 사용하여 Pandas DataFrame의 각 열에서 특정 문자열을 검색하고 하나 이상의 열에 해당 문자열이 포함된 행을 필터링할 수 있습니다.
#define filter mask = np. column_stack ([df[col]. str . contains (r " my_string ", na= False ) for col in df]) #filter for rows where any column contains 'my_string' df. loc [mask. any (axis= 1 )]
다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.
예: Pandas DataFrame의 모든 열에서 문자열 검색
팀에서 다양한 농구 선수의 첫 번째 역할과 두 번째 역할에 대한 정보가 포함된 다음과 같은 pandas DataFrame이 있다고 가정합니다.
import pandas as pd #createDataFrame df = pd. DataFrame ({' player ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ' first_role ': ['P Guard', 'P Guard', 'S Guard', 'S Forward', 'P Forward', 'Center', 'Center', 'Center'], ' second_role ': ['S Guard', 'S Guard', 'Forward', 'S Guard', 'S Guard', 'S Forward', 'P Forward', 'P Forward']}) #view DataFrame print (df) player first_role second_role 0 AP Guard S Guard 1 BP Guard S Guard 2 CS Guard Forward 3DS Forward S Guard 4 EP Forward S Guard 5 F Center S Forward 6 G Center P Forward 7 H Center P Forward
다음 코드는 열에 “Guard”라는 문자열이 나타나는 행에 대해 pandas DataFrame을 필터링하는 방법을 보여줍니다.
import numpy as np
#define filter
mask = np. column_stack ([df[col]. str . contains (r " Guard ", na= False ) for col in df])
#filter for rows where any column contains 'Guard'
df. loc [mask. any (axis= 1 )]
player first_role second_role
0 A P Guard S Guard
1 B P Guard S Guard
2 C S Guard Forward
3 D S Forward S Guard
4 E P Forward S Guard
결과 DataFrame의 각 행에는 적어도 하나의 열에 “Guard”라는 문자열이 포함되어 있습니다.
Pandas에서 “OR” 연산자( | )를 사용하여 여러 문자열 중 하나가 하나 이상의 열에 나타나는 행을 필터링할 수도 있습니다.
예를 들어 다음 코드는 하나 이상의 열에 “P Guard” 또는 “Center”가 나타나는 행을 필터링하는 방법을 보여줍니다.
import numpy as np
#define filter
mask = np. column_stack ([df[col]. str . contains (r " P Guard|Center ", na= False ) for col in df])
#filter for rows where any column contains 'P Guard' or 'Center'
df. loc [mask. any (axis= 1 )]
player first_role second_role
0 A P Guard S Guard
1 B P Guard S Guard
5 F Center S Forward
6 G Center P Forward
7 H Center P Forward
결과 DataFrame의 각 행에는 하나 이상의 열에 “P Guard” 또는 “Center”가 포함되어 있습니다.
참고 : contain() 함수에 na=False 인수를 포함하는 것이 중요합니다. 그렇지 않으면 DataFrame에 NaN 값이 있는 경우 오류가 발생합니다.
추가 리소스
다음 튜토리얼에서는 Pandas에서 다른 일반적인 필터링 작업을 수행하는 방법을 설명합니다.
열 값으로 Pandas DataFrame을 필터링하는 방법
Pandas DataFrame 행을 날짜별로 필터링하는 방법
여러 조건에서 Pandas DataFrame을 필터링하는 방법