zenn.skin 무료버전 배포중!
자세히보기

Python/Syntax

[Pandas] 행에서 문자열, 값의 검색

koosco! 2022. 7. 15. 19:52

DataFrame에서는 반복문 사용을 지양하고 대부분 내장함수를 사용하여 데이터를 처리합니다.

문자열을 검색할 때 "in"이나 re 모듈을 사용해서 검색을 많이 하는데 오늘은 contains에 대해 공부해보려 합니다.

 

import pandas as pd

data = [['Scarlett johansson', 160],
       ['Christopher Robert Evans', 183],
       ['Robert John Downey Jr.', 174],
       ['Mark Ruffalo', 173]]
       
df = pd.DataFrame(data, columns=['name', 'height'])
print(df['name'].str.contains('Jr'))

1. contains

contains 메소드는 조건에 해당하는 bool Series를 반환합니다.

masking을 이용해 DataFrame을 출력하면 다음과 같이 원하는 검색 결과를 얻을 수 있습니다.

print(df.loc[df['name'].str.contains('Jr')])
print(df[df['name'].str.contains('Jr')])

2. isin

contains는 해당하는 문자열을 포함하고만 있으면 모두 출력합니다. isin은 값이 완벽히 일치해야만 True를 반환합니다. 

또 하나의 값이 아니라 여러 개의 값들을 리스트로 묶어서 한 번에 찾고 싶을 때 사용할 수 있습니다. 문자열 외의 다른 자료형들에도 사용할 수 있는 장점이 있습니다.

df['height'].isin([160])

df['name'].isin(['Mark Ruffalo'])

'Python/Syntax'의 다른글

  • 현재글 [Pandas] 행에서 문자열, 값의 검색

관련글