Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- SQLD
- 케이티 에이블스쿨 6기 java
- 오블완
- 네트워크
- 케이티 에이블스쿨
- 머신러닝
- 케이티 에이블스쿨 6기
- 케이티 에이블스쿨 6기 ai
- 백준
- 엘라스틱서치
- 파이썬
- 구현
- kt 에이블스쿨 6기 빅프로젝트
- kt 에이블스쿨 6기
- ElasticSearch
- kt 에이블스쿨 6기 ai
- kt 에이블스쿨 기자단
- 케이티 에이블스쿨 기자단
- 케이티 에이블스쿨 6기 후기
- 티스토리챌린지
- kt aivle school
- 앙상블
- 프로그래머스
- 데이터 프레임
- KT 에이블스쿨
- kt 에이블스쿨 6기 미니 프로젝트
- 에이블 기자단
- KT AIVLE
- 알고리즘
- 판다스
Archives
- Today
- Total
미식가의 개발 일기
[머신러닝] 정규 표현식 사용하여 데이터 변환 본문
정규 표현식이란 문자열에서 특정한 패턴을 찾거나 조작하기 위해 사용하는 도구이다.
메타 문자
데이터를 검색하고 패턴을 정의하는데 사용되는 정규 표현식
| . | 한 개의 문자 |
| ^ | 문자열의 시작 |
| $ | 문자열의 끝 |
| | | OR 연산 |
| \ | 특수 문자를 일반 문자로 사용하거나 특수 시퀀스를 나타낼 때 |
특수 시퀀스
특정 패턴을 간단한 코드로 나타낼 때 사용
| \d | 모든 숫자 |
| \D | 숫자가 아닌 모든 문자(공백 포함) |
| \s | 모든 공백 문자 |
| \S | 공백 문자가 아닌 모든 문자(숫자 포함) |
| \w | 모든 단어 문자(알파벳, 숫자, 밑줄) |
| \W | 단어 문자가 아닌 문자(특수 문자 등) |
반복자
특정 문자가 몇 번 반복 되어야 하는지 정의
- 바로 앞에 문자 기준
| * | 0회 이상 반복될 때 |
| + | 1회 이상 반복될 때 |
| ? | 0회 또는 1회 있을 때 |
| {n} | n회 반복될 때 |
| {n, } | n회 이상 반복될 때 |
| {n, m} | 최소 n회 최대 m회 반복될 때 |
추출 예시
날짜 데이터에서 연도, 월, 일 추출
# r: raw string, 특수 시퀀스를 문자 그대로 취급
data_pattern = r'(\d{4})-(\d{2})-(\d{2})'
특정 문자(사과, 바나나)를 포함하는 값 추출
pattern = r'(사과|바나나)'
'공백-공백' 형태를 포함한 모든 값 추출
pattern = r'\s-\s.*'
추출한 값으로 데이터 정제(contains, replace, extract)
추출 결과 Boolean 값으로 출력
str.contains(pattern)
추출 결과값을 다른 값으로 대체
- 패턴값을 공백으로 대체하기
# regex=True 해당 패턴에서 정규 표현식을 사용한다는 의미
str.replace(pattern, '', regex=True)
패턴에 매칭되는 부분을 데이터 프레임으로 표현하기
str.extract(pattern)
반응형
'ML, DL' 카테고리의 다른 글
| [머신러닝] 피처 엔지니어링으로 예측 성능 높이기 (2) | 2024.07.23 |
|---|---|
| [머신러닝] 이상치 처리 (1) | 2024.07.23 |
| [머신러닝] 지도 학습, 비지도 학습, 강화 학습 (0) | 2024.07.20 |
| [머신러닝] 성적 예측하기(회귀: 선형 회귀, 랜덤 포레스트, XGBRegressor) (3) | 2024.07.15 |
| [머신러닝] 데이터 변환 및 시각화(with 캐글) (0) | 2024.07.14 |