-
str의 데이터 추출python-str관리 2025. 2. 20. 08:38
Python Pandas의 str.extract() 활용법: 정규 표현식으로 데이터 추출하기
데이터 분석을 하다 보면 문자열에서 특정 패턴을 추출해야 할 때가 많습니다. 예를 들어, 상품명에서 코드만 따로 분리하거나, 한글과 숫자를 분리하는 작업이 필요할 수 있습니다. 이런 경우, Pandas의 str.extract() 함수와 정규 표현식(Regex) 을 사용하면 매우 쉽게 처리할 수 있습니다.
🔹 str.extract()란?
Pandas의 str.extract() 함수는 문자열에서 특정 패턴을 찾아서 추출하는 기능을 합니다. 정규 표현식을 활용하여 원하는 데이터를 분리할 수 있으며, 새로운 컬럼으로 저장하는 것도 가능합니다.
✅ 기본 문법
DataFrame['컬럼명'].str.extract(r'(정규 표현식)')
- r'...' : 정규 표현식(Regex)을 의미하는 문자열
- () : extract()는 괄호 () 안의 패턴을 추출
📌 str.extract() 정규 표현식 예제
정규 표현식의미예제 (추출 결과)
([A-Z]\d+) 대문자 1개 + 숫자 조합 "노트북 A123" → "A123" (\w\d+) 알파벳 또는 숫자 + 숫자 조합 "모니터 B456" → "B456" (\d+) 숫자만 추출 "키보드 C789" → "789" ([가-힣]+) 한글만 추출 "마우스 M200" → "마우스" ([A-Za-z]+) 영문자만 추출 "모니터 B456" → "B" (\D+) 숫자가 아닌 문자만 추출 "키보드 C789" → "키보드 C" ([a-zA-Z0-9]+) 한글 제외하고 영어+숫자만 추출 "스마트폰 X500" → "X500" (\b[A-Z]+\b) 대문자 단어만 추출 (공백 기준) "TV LG OLED" → "LG" (\w+)$ 문장 끝 마지막 단어 추출 "맥북 프로 M1" → "M1" ^(\w+) 문장 맨 앞 첫 번째 단어 추출 "갤럭시 Z 플립" → "갤럭시" 🎯 str.extract() 실전 활용 예제
🔹 예제 데이터 생성
import pandas as pd # 예제 데이터 생성 data = {'상품명': ['노트북 A123', '모니터 B456', '키보드 C789', '마우스 M200', '스마트폰 X500']} df = pd.DataFrame(data)
🔹 숫자 코드만 추출하기
df['숫자코드'] = df['상품명'].str.extract(r'(\d+)') print(df)
출력 결과:
상품명 숫자코드 0 노트북 A123 123 1 모니터 B456 456 2 키보드 C789 789 3 마우스 M200 200 4 스마트폰 X500 500
🔹 한글과 영문+숫자 분리하기
df['한글명'] = df['상품명'].str.extract(r'([가-힣]+)') df['영문+숫자'] = df['상품명'].str.extract(r'([A-Za-z0-9]+)') print(df)
출력 결과:
상품명 숫자코드 한글명 영문+숫자 0 노트북 A123 123 노트북 A123 1 모니터 B456 456 모니터 B456 2 키보드 C789 789 키보드 C789 3 마우스 M200 200 마우스 M200 4 스마트폰 X500 500 스마트폰 X500
🔥 str.extract() 실무 활용 팁
1️⃣ ERP, 쇼핑몰 데이터 정리
- 상품명에서 모델명, 브랜드명, 제품 코드를 분리할 때 유용
- 예: "삼성 갤럭시 S21 256GB" → "갤럭시 S21", "256GB"
2️⃣ 마케팅 데이터 분석
- UTM 파라미터, 트래킹 코드에서 특정 값 추출
- 예: "utm_source=google&utm_medium=cpc" → "google", "cpc"
3️⃣ 로그 데이터 분석
- IP 주소, 특정 패턴 로그를 분리하는 데 활용
- 예: "User: admin (IP: 192.168.0.1)" → "192.168.0.1"
✅ 정리
Pandas의 str.extract()는 정규 표현식을 사용하여 문자열에서 특정 패턴을 추출하는 강력한 기능입니다. 상품명 정리, 데이터 정제, 마케팅 분석, 로그 분석 등 다양한 실무에서 활용 가능하므로 익혀두면 데이터 분석 효율이 크게 향상됩니다! 🚀
'python-str관리' 카테고리의 다른 글
import re (0) 2025.03.08 Python - 문자열 함수 정리 (0) 2025.03.08