본문 바로가기

배우기/복습노트[Python과 분석]

[복습] Python 문자열 메서드

728x90
반응형

모든 메서드 목록은 dir 함수에 객체를 전달한다.

import pandas as pd

from pandas import Series

dir(pd)                   # 함수 목록

dir(Series)             # 시리즈가 호출 가능한 메서드 목록

dir(str)                   # 문자열이 호출 가능한 메서드 목록

dir에 객체를 주게 되면 객체에 전달 가능한 메서드가 나옴

 

 

1. 대소 치환

upper: 대문자

lower: 소문자

title: camel 표기법

 

 

 

2. 문자열 추출(메서드 아님)

색인으로 가능

a1[:3]         # 0부터 2까지 라는 뜻. 앞에서 3개. 

시작범위 또는 끝범위 생략 가능. 둘 다 생략도 가능

 

 

 

3. 시작 / 끝 여부

startswith / endswith

 

 

 

4. 문자열 포함 여부

포함자 in 대상 → 하나의 논리값만 출력

단순히 원소에서 부분집합을 찾아내는 것.

 

포함연산자 isin 사용

 

위의 in과 아래의 isin은 다른 것이다. 리턴되는 논리값 개수가 다르다.

 

 

 

5. 공백 삭제

'홍길동' == '홍길동 '  같은 값을 찾을 수 없을 경우 공백 의심

 

strip: 양쪽 공백 제거

lstrip: 왼쪽 공백 제거

rstrip: 오른쪽 공백 제거

 

마지막처럼 문자도 삭제가 가능하다.

 

 

 

7. 문자열 분리

split 사용

마지막에는 split을 발생시킬 횟수를 제한하여 앞에 있는 두 번의 split만을 수행. 나머지는 split을 하지 않는다.

 

 

 

연습문제를 풀어보자.

 

ename = 'SMITH'
tel = '02)345-3434'
jumin = '8011121234567'
vid = 'abcd1234!!'
email = 'abcd@gmail.com'

 

1) ename의 두 번째 글자가 M인지 여부를 확인하여라

 

 

2) tel의 지역번호를 추출하여라

정규식 문자열은 pandas에서 지원하므로 여기서는 ')' 추출 시 그냥 작은따옴표 안에 괄호가 들어가도 된다.

 

 

3) 여자인지 여부를 확인하여라.

 

 

 

4) email id를 출력하여라

 

 

5) 다음과 같이 출력하여라

id : abcd, pwd: 'abcd1234!!'

 

 

 

 

8. 포함 횟수

count

마지막은 a1.count('1') 이라고 되어있는데 그냥 a1.count(1) 이라고 하면 에러가 발생한다.

1은 숫자가 아니라 문자이기 때문이다.

 

 

9. 결합

'a' + 'b'

 

 

10. 반복

'a'*5

aaaaa 가 출력된다.

 

 

 

11. 포맷 변경(문자열 외에도 모든 타입의 스칼라 가능)

 

 

 

 

연습문제를 풀어보자

mon = [1,  1,  1,  2,  3,  10,  11,  12]

day = [1, 10, 23, 22, 1,   5,    6,  31]

두 리스트를 결합하여 아래와 같이 출력하여라.

01/01, 01/10, 01/23 , ...

 

 

 

 

 

12. 문자열 삽입

rjust: 문자열을 오른쪽으로 밀어 왼쪽에 삽입

ljust: 문자열을 왼쪽으로 밀어 오른쪽에 삽입

 

 

예) 0을 정해진 길이만큼 채우기

'%02d' % 5

또는

'5'.rjust(2,'0') 

5.rjust(2,'0')    # 이건 불가함. 문자열이 아닌 숫자이므로.

 

 

※ 0을 채우는 방법 세 가지

1) %

 

2) rjust

 

3) zfill: 무조건 왼쪽에 0을 채움

'5'.zfill(2)

 

 

13. 문자열 위치

find: 위치 리턴

 

 

 

14. 문자열 길이(원소의 수)

len 정확히는 원소의 개수를 리턴하는데 글자가 들어가면 문자열 길이를 리턴함.

728x90
반응형