데이터분석 공부하기
[문자열] 포메팅 & 정규표현식 & 이스케이프 시퀀스 본문
★ 문자열 Formatting : 문자열 속 특정 위치에 특정 값 삽입
1) % formatting : %s 문자열, %d 정수, %f 실수
- python3 이에 주로 사용되며 c언어 style
- 단점 : 코드가 길어질 수록 장황
my_str = 'My name is %s' % 'harry'
my_str
'My name is harry'
2) str.format (a.k.a. '{}'.format())-https://pyformat.info/
- python3 이후부터 사용
-.format() 괄호안에 중괄호에 대입할 문자나 숫자 입력
-{인자 : 자리수.소수점 뒤 자리수 f} : 콜론(:) 전에는 format()에 오는 인자의 인덱스 순서, 콜론(:) 후에 컴마(.)전에는 총 자리수, 컴마(.) 후는 소수점 뒤 총 자리수, f는 float을 의미
-숫자 표현:
1) 소수점 : %__.__f 에서 점 앞의 수는 '자리수', 점 뒤의 수는 '소수점 자리 수' ex> % 06.2f : 6자리, 빈칸은 0, 소수점은 2째자리
2) 정렬 : <(왼쪽), ^(가운데), >(오른쪽); { 변수: ^10} 에서 화살표는 정렬 의미
-단점 : 여러 매개변수와 긴 문자열 처리시 장황/헷갈림
"my name is {} and I am {} years old".format('Harry', 10)
'My name is Harry and I am 10 years old'
"my name is {0} and I am {1} years old".format('Harry', 10)
'My name is Harry and I am 10 years old'
3) f-string : {변수 : 정렬}
-python 3.6 이후 부터 사용
-변수값에 값을 대입 후, 중괄호{}에 변수명을 넣는다. 이 때 중활호가 들어가는 코드 처음에 f를 입력한다(대문자 F가능)
-장점 : 간편; 정수 간 산술 가능; 세가지 방법 중 가장 빠름
name = 'harry'
age = 10
f"Hello, my name is {name}. I am {age}." #f입력
'Hello, my name is harry. I am 10.'
★ 정규표현식(Regex) : 특정한 규칙을 가진 문자열의 집합을 표현하는 형식 언어
-참고:
https://hamait.tistory.com/342
http://pythonstudy.xyz/python/article/401-%EC%A0%95%EA%B7%9C-%ED%91%9C%ED%98%84%EC%8B%9D-Regex
https://whatisthenext.tistory.com/116
^ | 이 패턴으로 시작해야 함 | ^abc : abc로 시작해야 함 (abcd, abc12 등) |
$ | 이 패턴으로 종료되어야 함 | xyz$ : xyz로 종료되어야 함 (123xyz, strxyz 등) |
[문자들] | 문자들 중에 하나이어야 함. 가능한 문자들의 집합을 정의함. | [Pp]ython : "Python" 혹은 "python" |
[^문자들] | [문자들]의 반대로 피해야할 문자들의 집합을 정의함. | [^aeiou] : 소문자 모음이 아닌 문자들 |
| | 두 패턴 중 하나이어야 함 (OR 기능) | a | b : a 또는 b 이어야 함 |
? | 앞 패턴이 없거나 하나이어야 함 (Optional 패턴을 정의할 때 사용) | \d? : 숫자가 하나 있거나 없어야 함 |
+ | 앞 패턴이 하나 이상이어야 함 | \d+ : 숫자가 하나 이상이어야 함 |
* | 앞 패턴이 0개 이상이어야 함 | \d* : 숫자가 없거나 하나 이상이어야 함 |
패턴{n} | 앞 패턴이 n번 반복해서 나타나는 경우 | \d{3} : 숫자가 3개 있어야 함 |
패턴{n, m} | 앞 패턴이 최소 n번, 최대 m 번 반복해서 나타나는 경우 (n 또는 m 은 생략 가능) | \d{3,5} : 숫자가 3개, 4개 혹은 5개 있어야 함 |
\d | 숫자 0 ~ 9 | \d\d\d : 0 ~ 9 범위의 숫자가 3개를 의미 (123, 000 등) |
\w | 문자를 의미 | \w\w\w : 문자가 3개를 의미 (xyz, ABC 등) |
\s | 화이트 스페이스를 의미하는데, [\t\n\r\f] 와 동일 | \s\s : 화이트 스페이스 문자 2개 의미 (\r\n, \t\t 등) |
. | 뉴라인(\n) 을 제외한 모든 문자를 의미 | .{3} : 문자 3개 (F15, 0x0 등) |
★ Escape Sequence
- \와 ₩는 같은 의미
코드 | 뜻 |
\n | 개행 (줄바꿈) |
\v | 수직 탭 |
\t | 수평 탭 |
\r | 캐리지 리턴 |
\f | 폼 피드 |
\a | 벨 소리 |
\b | 백 스페이스 |
\000 | 널 문자 |
\\ | 문자 "\" |
\' | 단일 인용부호 (') |
\" | 이중 인용부호 (") |
'Python' 카테고리의 다른 글
[판다스] 함수(list comprehension, lambda, map, apply, applymap) (0) | 2021.10.19 |
---|---|
[Reshape] 데이터 재구조화 (0) | 2021.10.19 |
[시각화] Matplotlib & Seaborn (0) | 2021.10.19 |
[PANDAS] (if-else) 조건에 따른 새 컬럼 생성하기 (0) | 2021.10.18 |
[Function] 내장함수(builtin), 외장함수(extenal) (0) | 2021.08.20 |