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 | 29 | 30 | 31 |
Tags
- 데이터프레임
- 보간법
- 선형보간
- BDA
- 대치법
- join
- SimpleImputer
- DataFrame
- 누락값
- Boxplot
- 결측치
- 파이썬
- 결측치대체
- KoNLP
- IterativeImputer
- 불용어
- subplots
- sklearn
- stopwords
- value_counts
- interpolate
- 전처리
- countplot
- matplotlib
- koNLPy
- Seaborn
- Python
- Outlier
- 이상치
- MSE
Archives
- Today
- Total
ACAIT
[BDA 데분기] 12주차 - 문자열 관련 함수 본문
1. re, regex: 정규표현식
- match(), fullmatch(), findall(), search() 등의 함수가 있는 모듈.
- 문자열 처리 시 다앙한 사례에서 요구하는 조건의 패턴, 처리 방식을 만들어 처리하는 방법.
- split, strip, 등의 문자열 문법이 정규표현식과 사용하면 다양한 응용 가능.
- 이메일 주소 찾기, 아이디/비번 패턴 찾기 등 다양한 패턴 만들 수 있음.
- 숫자 [0-9]
- 소문자 [a-z]
- 대문자 [A-Z]
- 한글 [가-힣]
- 자음모음 [ㄱ-ㅎ][ㅏ-ㅣ]
- ^: Not. 제외하고 전부.
- '+', '*': 0개 이상 또는 1개 이상의 패턴을 모두 찾는 것.
# 약어
- \d 모든 숫자
- \D 모든 숫자 제외
- \w 영문, 대소문자, 숫자, 밑줄 문자 포함
- \W 상기 제외
1-1. match(패턴, 문자열)
- 문자열 시작부터 패턴이 일치하는지 확인.
1-2. search(패턴, 문자열)
- 문자열 중간부터 패턴이 일치해도 결과 반환.
- {} 숫자를 넣으면 해당 패턴의 문자 몇 개 찾아 달라.
- e.g {3} 3개의 패턴을 찾아라.
- 010-0000-0000
- 정규표현식을 여러 개 합쳐서 사용 가능.
1-3. findall(패턴, 문자열)
- 문자열에서 패턴에 맞는 부분을 전부 리스트로 반환.
1-4. finditer(패턴, 문자열)
- 위와 동일하지만 iterator 형식으로 반환.
1-5. fullmatch(패턴, 문자열)
- 문자열 시작과 끝이 정확하게 패턴과 일치할 때 반환.
1-6. split(패턴, 문자열, 최대 분할 수)
- 문자열 패턴이 맞으면 리스트로 분할하는 함수.
1-7. sub(패턴, 교체, 문자열, 최대 교체 수)
- 일치하는 패턴을 교체할 문자열로 교체.
- subn(패턴, 교체, 문자열, 최대 교체 수, 플래그): 결과, 교체 수가 반환됨.
1-8. 정규 표현식 메소드
- group(): 패턴 그룹에 일치하는 각 문자열 반환.
- groups(): 패턴 그룹에 일치하는 문자열을 리스트로 반환.
- start(): 패턴 일치하는 시작 인덱스 반환.
- end(): 패턴 일치하는 마지막 인덱스 반환.
- span(): 패턴 일치하는 시작부터 끝까지 인덱스 반환.
2. 실습 - pandas의 str 문법 응용
2-1. strip()
- 문자열 시작과 끝의 공백 제거하는 문법. lstrip(), rstrip()
- 시리즈 데이터.str.문법()
2-2. pad()
- 문자열의 길이 맞추거나, 0 패딩 맞출 때 사용하는 문법.
2-3. center()
- pad()와 유사하지만 문자열 가운데 정렬 후 양쪽에 특정 문자로 채움.
2-4. ljust(), rjust()
- 각각 문자열을 왼쪽, 오른쪽 정렬 후 특정 문자열로 길이 맞추는 함수.
2-5. zfill()
- 0으로 문자열 길이 맞추는 함수.
2-6. split()
- 문자열 나누는 함수. 구분자, 원하는 값으로 나누기.
- n: 구분자 기준으로 몇 번 나눌지.
- expand = True: 여러 컬럼으로 나누기.
- expand = False: 1개 컬럼에 나누기.
2-7. partition()
- 좌측에 먼저 출현한 구분자를 나누는 것.
- 새로 생성하는 컬럼 수만큼만 분할.
- 문자열, 구분자, 문자열 순으로 반환되므로 구분자 포함하여 반환 컬럼 생성 필요.
# 코드 잘린 부분: df1['document'].str.partition(sep = ' ')
2-8. 문자 대체 함수
- lower(): 전부 소문자로
- upper(): 전부 대문자로
- capitailize(): 앞 문자 대문자로
- title(): 단위별 앞 문자 대문자로
- swapcase(): 소문자는 대문자로, 대문자는 소문자로
2-9. replace()
- 특정 문자를 다른 문자로 대체.
2-10. find()
- 해당 문자가 어디에 있는지 인덱스 반환.
- 1.0은 없다는 의미.
2-11. findall()
- 수치가 아니라 해당되는 문자를 리스트로 반환.
2-12. slice()
- 특정 인덱스 값만 반환.
- start: 제거할 문자열 시작 인덱스.
- stop: 제거할 문자열 마지막 인덱스.
2-13. slice_replace()
- 조건 사이 인덱스 값을 다른 값으로 대체.
2-14. len()
- 문자열 길이 반환.
- 자연어를 계속 수치화하고 의미 있는 데이터 찾는 것이 머신러닝과 데이터 분석에 중요.
'학회 활동 > BDA 7기(데이터 분석 기초반)' 카테고리의 다른 글
[BDA 데분기] 12주차 필수 과제 2 - 영화 리뷰 분석 (0) | 2024.02.01 |
---|---|
[BDA 데분기] 12주차 필수 과제 1 - 문자열 관련 함수 총 정리 (1) | 2024.02.01 |
[BDA 데분기] 11주차 - 데이터 전처리 (1) | 2024.01.31 |
[BDA 데분기] 10주차 - kaggle master 코드 분석 (1) | 2024.01.31 |
[BDA 데분기] 9주차 필수 과제 2 - 시계열 데이터 분석 및 시각화 (0) | 2024.01.31 |