[30일차]문자열 제어 - .str의 메소드(contains)

김준석·2024년 1월 8일

문자열을 조회 해주는 contains 메소드이다.

contains 메소드와 인자

**Series.str.contains(pat, case=True, flags=0, na=None, regex=True)**

  • 문자열 Series 또는 Index에서 주어진 패턴 또는 정규식이 포함되어 있는지 확인
  • 주어진 문자열이나 정규식이 다수의 문자열 요소에 대해 포함 여부를 효과적으로 확인

parameter:

  • pat: 문자열 또는 정규식 패턴⭐
  • case : 대소문자 구분 여부를 지정하는 부울 값.⭐
    • True면 대소문자를 구분.
  • flags : re 모듈에 전달할 플래그. 정규식 패턴의 세부 제어 설정.
    • re.IGNORECASE(re.I) : 대소문자를 구분하지 않고 패턴을 매칭.
    • re.MULTILINE(re.M) : 문자열이 여러 줄로 이루어져 있을 때, 각 줄의 시작과 끝을 패턴 매칭.
    • re.DOTALL(re.S) : 줄바꿈 문자를 포함한 모든 문자와 매칭.
    • re.UNICODE(re.U) : 유니코드 문자 범위를 이해하고 매칭.
    • re.VERBOSE(re.X) : 정규식 패턴을 가독성 있게 작성할 수 있도록 여러 줄과 주석을 사용한다.
  • na : 누락된 값에 대한 대체값(채움값). NA데이터를 만났을 때 어떻게 처리할 건지 설정.
  • regex: 패턴을 정규식인지를 파악할 지 설정.
    • True면 패턴을 정규식으로 해석.
    • False면 패턴을 리터럴 문자열로 이해하고 처리.

return

  • 포함 여부에 따라 boolean형 Series 또는 Index를 반환.
  • 패턴이나 정규식이 포함되어 있는 경우 True로 표시.
  • 포함되어 있지 않은 경우 False로 표시.

실습

실습 데이터 프레임

q 탐색 필터를 만들어보자.(mask와 비슷)

q_filter = pokemons['Name'].str.contains('q', case=True)

contains도 문자열 메소드이기 때문에 .str을 붙여줘야 된다.

Name 컬럼에서 ‘q’ 문자가 들어가는 것을 찾는다.

case=True 이므로 대소문자를 구분해준다.(이는 default값이기 때문에 안써도 됨.)

pokemons[q_filter]

확인이 잘 된다.

또는 |, 그리고 &, 아닌 ~! 연산도 가능!

saurus(파충류), Dragon(용) -> saur, ragon 이름에 들어간 걸 찾아보자.

그럼 saur 또는 ragon 형태로 코드를 짜야된다.

pokemons['Name'].str.contains('saur|ragon', case=False)

contains 안에 pat 인자값에 연산부호와 함께 사용해주면 됨.

잘 나온다~

0개의 댓글