웹 크롤러를 통해 가져온 데이터들은 빈 문자열, 띄어쓰기 혼입, 특수문자 범벅, 빈도 단위 불합치 등 어마어마한 결함 투성이 날것(raw) 상태입니다. 이 비정형 더미 데이터를 데이터베이스나 AI 학습 모델에 그대로 집어넣으면 대량 오류를 유발합니다. 파이썬의 표준 수치 분석 라이브러리인 Pandas(판다스)를 활용해 수집 본을 말끔히 정제하고 가공하는 기술을 습득합니다.
본문 상단 광고 슬롯 (구글 애드센스 반응형 디스플레이 광고)
1. Pandas DataFrame 데이터 변환
수집된 JSON 리스트 데이터를 Pandas의 가상 표 객체(DataFrame) 형태로 로드합니다.
import pandas as pd
# 크롤링한 원시 리스트 사전 예시
raw_data = [
{"name": "삼성전자", "price": "75,000원", "stock": "있음"},
{"name": "SK하이닉스", "price": "180,000원", "stock": None}, # 결측치 발생
{"name": "카카오", "price": "N/A", "stock": "없음"}
]
df = pd.DataFrame(raw_data)
print(df)
2. 필수 정제 3단계 데이터 클리닝 공식
날것의 텍스트 형식을 수치형과 온전한 범주형으로 표준 가공하는 실무 코드입니다.
# 1단계: 통화 기호 및 반점(Comma) 제거 후 정수형 형변환
df['price'] = df['price'].str.replace('원', '').str.replace(',', '')
# 'N/A' 텍스트를 파이썬의 결측값(NaN)으로 자동 보정
df['price'] = pd.to_numeric(df['price'], errors='coerce')
# 2단계: 결측값(NaN)을 평균 가격이나 특정 기본값으로 채우기
df['price'] = df['price'].fillna(df['price'].mean())
# 3단계: 품절 여부의 데이터 일치 표준화 (있음/없음 -> 1/0 변경)
df['stock'] = df['stock'].map({"있음": 1, "없음": 0}).fillna(0)
"데이터 과학의 전체 업무량 중 80% 이상은 스크래핑을 통한 획득보다, 수집된 데이터를 클리닝하고 정합성을 정밀하게 다듬는 정제 공정에 소모됩니다."
본문 중간 광고 슬롯 (구글 애드센스 인프리미엄 콘텐츠 광고)
3. 텍스트 이상 데이터 정규식(Regex) 가공 요령
전화번호 포맷 통일(`010-XXXX-XXXX` 등)이나 주소 텍스트의 불필요한 노이즈 제거 시에는 판다스의 `str.replace()` 메서드와 파이썬 정규 표현식 패턴을 조합하여 한 줄의 벡터 연산으로 대량의 레코드를 1초 만에 깔끔하게 가공할 수 있어 유용합니다.
4. 요약: 최종 데이터 파이프라인의 완성
단순 크롤링 스크립트의 실행을 넘어, 판다스 데이터 다듬기 가공을 반드시 덧붙여 즉시 데이터 마이닝과 대시보드 리포팅에 투입 가능한 정갈한 정보 자산 데이터로 승화시켜 보십시오.
본문 하단 광고 슬롯 (구글 애드센스 일치하는 콘텐츠/디스플레이 광고)