일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Funnel
- tablueau
- oracle
- 상관계수
- tableau
- 이벤트 매개변수
- It
- Ecommerce
- 후기
- 크로스셀링
- SQLD
- DISTINCT
- Ga
- 데이터 분석
- git
- segmentation
- 그로스해킹
- Google Analytics
- API
- 맞춤 이벤트
- pandas
- 통계
- 용어 정리
- bigquery
- 캐글
- Kaggle
- SQL
- 맞춤 자바스크립트
- Python
- sql 개발자
Archives
- Today
- Total
녕녀기의 실험일지
[ Pandas ] .str.extract와 정규 표현식을 사용해서 조건에 맞는 텍스트 추출하기 본문
본문으로
안녕하세요. 녀기입니다.
ㅎㅎ
이 늦은 시간에 포스팅이라니...
그것도 주말입니다..
어쩌다 보니 python 코드를 작성하게 됐고,
모르던 것을 알게 돼서 바로 기록으로 남겨야 하기에
이렇게 포스팅을 하게 됩니다..
(인생이란...야근의 연속?ㅋㅋㅋ)
으아...!!!
바로 가 보시죠🏋️♀️
str.extract()
id | A |
0 | [헤헤] |
1 | [지금 시간은] 새벽 2시 |
2 | 잘 수가 없는 데이터린이[는 지금도] |
3 | [포]스팅 중 |
위와 같은 테이블 혹은 데이터 프레임이 있다고 합시다.
제가 하고 싶었던 것은 [ ](대괄호) 사이에 포함돼 있는 글자를 추출하고 싶었습니다.
첫 번째 컬럼에서는 '헤헤'
두 번째 컬럼에서는 '지금 시간은'
세 번째 컬럼에서는 '는 지금도'
네 번째 컬럼에서는 '포'라는 글자만 추출하는 것이죠.
보통 텍스트에서 규칙을 찾아야 할 때는 정규 표현식을 사용합니다.
pandas 데이터 프레임에서 규칙에 찾는 텍스트를 찾아 추출하는 것이 바로
.str.extract() 입니다.
아래와 같이 대괄호 안에 포함된 글자를 찾을 수 있습니다.
df["A"].str.extract(r'\[(.*?)\]')
사용된 정규 표현식을 하나하나 살펴 보면
- \[와 \]: [와 ]는 정규 표현식에서 특별한 의미를 가지는 메타문자입니다. 이를 문자 그대로 매칭하려면 역슬래시(\)를 사용하여 이스케이프합니다.
- (.*?): 이 부분은 실제로 추출하려는 부분입니다.
- .: 어떤 문자 하나와 일치합니다.
- *: 앞에 나오는 문자나 패턴이 0번 이상 반복됨을 나타냅니다. 따라서 .*는 어떤 문자나 문자열이든 0번 이상 반복될 수 있음을 의미합니다.
- ?: 앞에 나오는 패턴이 최소로 일치하도록 합니다. 즉, 가능한 가장 짧은 문자열과 매치됩니다.
따라서 r'\[(.*?)\]'는 [와 ] 사이에 있는 문자열을 최소한의 길이로 추출하게 됩니다. 예를 들어, [example]에서 example을 추출하고 [a]에서 a를 추출합니다.
만약 괄호까지 포함해서 출력하고 싶다면
아래와 같이 소괄호 안에 역슬래시 대괄호를 써 주면 됩니다.
df["A"].str.extract(r"(\[.*?\])")
특정한 텍스트를 찾을 때 정규 표현식을 써서 찾는 버릇을 들여야 하는데
이 놈의 정규 표현식은 해도 해도 모르겠단 말이죠...
(진짜 너무 어려워요ㅠㅠ)
그래도 어쩌겠습니까? 내가 선택한 길인걸....
(내가 가는 이 길이 어디로 가는지~♬)
저는 이제 다시 자러 가 볼게요.
주말에는 쉬어야지...
여러분들도 주말 푹 쉬세요~~
뿅입니다.

'-- Data -- > - Python -' 카테고리의 다른 글
[ Matplotlib ] 특정 값만 색상 다르게 지정하기 (0) | 2023.09.25 |
---|---|
[ Python ] iter와 next를 활용한 텍스트 추출 (0) | 2023.09.08 |
[ Python ] sympy 라이브러리를 이용한 방정식 해 구하기 (0) | 2023.07.28 |
[ Pandas ] sort_values()를 이용한 Dataframe 정렬 (0) | 2023.06.22 |
[ Pandas ] melt() method 를 사용해 DataFrame Unpivot 화 (0) | 2023.05.25 |
Comments