데이터 정리를 자동화하는 5가지 유용한 Python 스크립트


편집자 이미지
# 소개
데이터 전문가라면 기계 학습 모델, 분석 대시보드, 비즈니스 보고서가 모두 정확하고 일관되며 적절한 형식의 데이터에 의존한다는 것을 알고 있습니다. 그러나 불편한 진실은 다음과 같습니다. 데이터 정리는 프로젝트 시간의 상당 부분을 소모합니다. 데이터 과학자와 분석가는 실제로 데이터를 분석하는 것보다 데이터를 정리하고 준비하는 데 많은 시간을 소비합니다.
수신한 원시 데이터가 지저분합니다. 여기저기 흩어져 있는 누락된 값, 중복된 레코드, 일관되지 않은 형식, 모델을 왜곡하는 이상값, 오타와 불일치로 가득 찬 텍스트 필드가 있습니다. 이 데이터를 수동으로 정리하는 것은 지루하고 오류가 발생하기 쉬우며 확장되지 않습니다.
이 문서에서는 실제 프로젝트에서 자주 실행하게 될 가장 일반적이고 시간이 많이 소요되는 데이터 정리 작업을 자동화하기 위해 특별히 설계된 5가지 Python 스크립트를 다룹니다.
🔗 GitHub의 코드에 대한 링크
# 1. 누락된 값 처리기
문제점: 데이터 세트에는 누락된 값이 곳곳에 있습니다. 일부 열은 90% 완전하고 다른 열에는 희소 데이터가 있습니다. 행 삭제, 평균 채우기, 시계열에 대한 전진 채우기 사용 또는 보다 정교한 대치 적용 등 각각에 대해 무엇을 할지 결정해야 합니다. 각 열에 대해 이 작업을 수동으로 수행하는 것은 지루하고 일관성이 없습니다.
스크립트의 기능: 전체 데이터 세트에서 결측값 패턴을 자동으로 분석하고, 데이터 유형 및 결측 패턴을 기반으로 적절한 처리 전략을 권장하며, 선택한 대치 방법을 적용합니다. 누락된 내용과 처리 방법을 보여주는 자세한 보고서를 생성합니다.
작동 원리: 스크립트는 모든 열을 검색하여 누락 비율과 패턴을 계산하고 데이터 유형(숫자, 범주형, 날짜/시간)을 결정하고 적절한 전략을 적용합니다.
- 숫자 데이터의 평균/중앙값,
- 범주형 모드,
- 시계열에 대한 보간.
MCAR(Missing Completely at Random), MAR(Missing at Random) 및 MNAR(Missing Not at Random) 패턴을 다르게 감지하고 처리할 수 있으며 재현성을 위해 모든 변경 사항을 기록합니다.
⏩ 누락된 값 처리기 스크립트 가져오기
# 2. 중복 기록 감지 및 해결 프로그램
문제점: 데이터에 중복이 있지만 항상 정확히 일치하는 것은 아닙니다. 때로는 이름 철자가 약간 다른 동일한 고객이거나 약간의 변형으로 두 번 기록된 동일한 거래일 수도 있습니다. 이러한 퍼지 중복 항목을 찾아 보관할 레코드를 결정하려면 수천 개의 행을 수동으로 검사해야 합니다.
스크립트의 기능: 구성 가능한 일치 규칙을 사용하여 정확한 중복 기록과 퍼지 중복 기록을 모두 식별합니다. 유사한 기록을 그룹화하고, 유사점에 점수를 매기고, 검토를 위해 플래그를 지정하거나, 최신 상태 유지, 가장 완전한 상태 유지 등 정의한 생존 규칙에 따라 자동으로 병합합니다.
작동 원리: 스크립트는 먼저 속도를 위해 해시 기반 비교를 사용하여 정확한 중복 항목을 찾습니다. 그런 다음 다음을 사용하는 퍼지 일치 알고리즘을 사용합니다. 레벤슈타인 거리 그리고 자로-윙클러 주요 필드에서 거의 중복된 항목을 찾습니다. 기록은 중복 그룹으로 클러스터링되며 생존 규칙에 따라 병합 시 유지할 값이 결정됩니다. 세부 보고서에는 발견된 모든 중복 그룹과 수행된 조치가 표시됩니다.
⏩ 중복 감지 스크립트 가져오기
# 3. 데이터 유형 수정기 및 표준화기
문제점: CSV 가져오기를 통해 모든 것이 문자열로 바뀌었습니다. 날짜는 다섯 가지 형식으로 되어 있습니다. 숫자에는 통화 기호와 천 단위 구분 기호가 있습니다. 부울 값은 모두 동일한 열에 “예/아니요”, “Y/N”, “1/0” 및 “True/False”로 표시됩니다. 일관된 데이터 유형을 얻으려면 지저분한 각 열에 대한 사용자 지정 구문 분석 논리를 작성해야 합니다.
스크립트의 기능: 각 열에 의도된 데이터 유형을 자동으로 감지하고 형식을 표준화하며 모든 것을 적절한 유형으로 변환합니다. 다양한 형식의 날짜를 처리하고, 숫자 문자열을 정리하고, 부울 표현을 정규화하고, 결과를 검증합니다. 변경된 내용을 보여주는 변환 보고서를 제공합니다.
작동 원리: 스크립트는 각 열의 값을 샘플링하여 패턴 일치 및 휴리스틱을 사용하여 의도한 유형을 추론합니다. 그런 다음 적절한 구문 분석을 적용합니다. 날짜 유틸리티 유연한 날짜 구문 분석을 위한 정규식, 숫자 추출을 위한 정규식, 부울 정규화를 위한 매핑 사전. 실패한 변환은 수동 검토를 위해 문제가 있는 값과 함께 기록됩니다.
⏩ 데이터 유형 수정 프로그램 스크립트 가져오기
# 4. 이상치 탐지기
문제점: 수치 데이터에는 분석을 망칠 수 있는 이상값이 있습니다. 일부는 데이터 입력 오류이고, 일부는 유지하려는 타당한 극단값이며, 일부는 모호합니다. 이를 식별하고, 그 영향을 이해하고, 각 사례를 처리하는 방법(winsorize, 제한, 제거 또는 검토용 플래그 지정)을 결정해야 합니다.
스크립트의 기능: IQR, Z-score, 고립된 숲분포와 영향을 시각화하고 구성 가능한 치료 전략을 적용합니다. 일변량 이상값과 다변량 이상값을 구별합니다. 이상값 개수, 해당 값, 처리 방법을 보여주는 보고서를 생성합니다.
작동 원리: 스크립트는 선택한 방법을 사용하여 이상값 경계를 계산하고, 임계값을 초과하는 값에 플래그를 지정하고, 제거, 백분위수 상한, Winsorization 또는 경계 값으로 대치 등의 처리를 적용합니다. 다변량 이상치의 경우 Isolation Forest 또는 Mahalanobis 거리를 사용합니다. 모든 이상값은 감사 목적으로 원래 값으로 기록됩니다.
⏩ 이상값 감지 스크립트 가져오기
# 5. 텍스트 데이터 클리너 및 노멀라이저
문제점: 텍스트 필드가 엉망입니다. 이름에는 대문자 사용이 일관되지 않고, 주소에는 서로 다른 약어(St. vs Street vs ST)가 사용되며, 제품 설명에는 HTML 태그와 특수 문자가 있고, 자유 텍스트 필드에는 모든 위치에 앞뒤 공백이 있습니다. 텍스트 데이터를 표준화하려면 수십 개의 정규식 패턴과 문자열 작업을 일관되게 적용해야 합니다.
스크립트의 기능: 텍스트 데이터를 자동으로 정리하고 표준화합니다. 대소문자를 표준화하고, 원치 않는 문자를 제거하고, 약어를 확장 또는 표준화하고, HTML을 제거하고, 공백을 표준화하고, 유니코드 문제를 처리합니다. 구성 가능한 정리 파이프라인을 사용하면 다양한 열 유형(이름, 주소, 설명 등)에 다양한 규칙을 적용할 수 있습니다.
작동 원리: 스크립트는 열 유형별로 구성할 수 있는 텍스트 변환 파이프라인을 제공합니다. 대소문자 정규화, 공백 정리, 특수 문자 제거, 조회 사전을 사용한 약어 표준화 및 유니코드 정규화를 처리합니다. 각 변환이 기록되며 검증을 위해 이전/이후 샘플이 제공됩니다.
⏩ 텍스트 클리너 스크립트 받기
# 결론
이 5가지 스크립트는 실제 프로젝트에서 직면하게 될 가장 시간이 많이 소요되는 데이터 정리 문제를 해결합니다. 다음은 간단한 요약입니다.
- 누락된 값 처리기는 누락된 데이터를 지능적으로 분석하고 대치합니다.
- 중복 탐지기는 정확하고 퍼지 중복을 찾아서 해결합니다.
- 데이터 유형 수정자는 형식을 표준화하고 적절한 유형으로 변환합니다.
- 이상치 탐지기는 통계적 이상을 식별하고 처리합니다.
- 텍스트 클리너는 지저분한 문자열 데이터를 일관되게 정규화합니다.
각 스크립트는 모듈식으로 설계되었습니다. 따라서 개별적으로 사용하거나 완전한 데이터 정리 파이프라인으로 함께 연결할 수 있습니다. 가장 큰 문제점을 해결하는 스크립트로 시작하여 데이터 샘플에 대해 테스트하고, 특정 사용 사례에 맞게 매개변수를 사용자 정의하고, 점차적으로 자동화된 청소 작업 흐름을 구축하십시오.
데이터 정리를 즐겨보세요!
발라 프리야 C 인도 출신의 개발자이자 기술 작가입니다. 그녀는 수학, 프로그래밍, 데이터 과학, 콘텐츠 제작의 교차점에서 일하는 것을 좋아합니다. 그녀의 관심 분야와 전문 분야에는 DevOps, 데이터 과학, 자연어 처리가 포함됩니다. 그녀는 읽기, 쓰기, 코딩, 커피를 즐깁니다! 현재 그녀는 튜토리얼, 방법 가이드, 의견 등을 작성하여 개발자 커뮤니티에서 자신의 지식을 학습하고 공유하는 데 힘쓰고 있습니다. Bala는 또한 매력적인 리소스 개요와 코딩 튜토리얼을 만듭니다.



Post Comment