여러 문자열을 포함하는 모든 행 검색하기
어떤 문자열을 포함하는 행을 찾기 위해선 contains라는 함수를 사용해야 한다.
만약 여러 문자열을 포함하는 모든 행을 찾고 싶다면 어떻게 해야할까?
다섯개 정도까지는 직접 &와 |를 이용해서 코드를 쓸 수 있지만 그 이상으로 넘어가면 지저분해진다.
따라서 join함수를 이용해 간단하게 써보자.
예시 코드
import pandas as pd
# 포함하고자 하는 문자열 리스트 생성
example_list = ['apple', 'red', 'peach', 'blue']
# 데이터프레임 생성
df = pd.DataFrame(data)
# join함수를 이용하여 이어주고 contains 함수에 넣기
test = '|'.join(example_test)
result = df[df['names'].str.contains(test)]
이렇게 문자들이 담긴 리스트를 생성해주고 join함수를 이용해 &, |로 이어준 변수를 contains에 넣어주면 끝이다.
반응형