일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 시각화
- Python
- pyspark
- 태블로
- pandas
- 데이터분석
- konlpy
- selenium
- 파이썬
- scikit-learn
- 데이터
- ionehotencoding
- Word Cloud
- Okt
- 인공지능
- 형태소분석기
- input
- iNT
- 데이터 분석
- 머신러닝
- numpy
- SQL
- Tableau
- 크롤링
- Udemy
Archives
- Today
- Total
반전공자
[Python] 정규표현식 본문
하나의 문자열에서 원하는 부분만 추출하고 싶다면?
패키지
import re
정규표현식을 위한 패키지는 re 한개 임포트~
re. 함수 설명
- re.match(패턴, 문자열) : 문자열 처음부터 패턴 찾기
- re.search(패턴, 문자열) : 중간에 있어도 무관
- re.findall(패턴, 문자열) : 일치하는 모든 문자열 추출
샘플 데이터
대략 이렇게 생긴 문자열에서 원하는 데이터를 추출해보자.
하나의 문자열에 평점, 구매처, 아이디, 날짜가 다 붙어있다.
이런 머리아픈 상황에선 정규표현식이 제격이겠죠?
일단 가장 뒤에 붙어있는 날짜를 떼어보자.
날짜 추출
맨 위에서 본 샘플과 달리 136번 데이터는 날짜 뒤에도 텍스트가 붙어있다.
모든 데이터가 가장 뒤에 날짜만 있었다면 인덱스 슬라이싱으로 추출 가능하겠지만, 이런 경우가 있으니 정규표현식이 필수..
패턴 지정
원하는 데이터의 형식 : yy.mm.dd.
pattern = "([0-9]+.)\s*([0-9]+.)\s*([0-9]+.)"
pattern = "([\d\d]+).([\d\d]+).([\d\d]+)"
형식에 맞게 패턴을 지정한다.
위 두개 패턴은 동일한 결과를 반환한다.
참고
숫자 : 0-9
영어 소문자 : a-z
영어 대문자 : A-Z
한글 : 가-힣
테스트로 가장 첫번째 데이터를 넣어본다.
a = re.search(pattern, str(df['date'][0]))
print(a.group())
원본 데이터 : '평점5인터파크쇼핑k*b*****20.09.23.'
그렇다면 날짜가 중간에 껴있는 경우에도 잘 나올까?
원하는대로 문자열이 잘 추출된다.
'데이터분석' 카테고리의 다른 글
[정규표현식] 특정 문자 사이의 문자 추출 (0) | 2023.03.23 |
---|---|
[크롤링] 셀레니움 버튼 못찾음 에러 해결 (0) | 2023.03.22 |
[크롤링] 네이버 쇼핑 - 리뷰 동적 크롤링 (0) | 2023.03.17 |
[크롤링] 네이버 쇼핑 - 리뷰 (0) | 2023.03.17 |
[Python] list 중복 제거 (0) | 2023.03.17 |