EDA — 파이썬 실습 가이드 (Towards Data Science)

Source: https://towardsdatascience.com/exploratory-data-analysis-in-python-c9a77dfa39ce/ Type: Article By: Tanu N Prabhu Published: 2019-08-10 Valid as of: 2026-04-26

핵심 Takeaway

  • 9단계 EDA 워크플로: 라이브러리 임포트 → 데이터 로드 → 자료형 확인 → 불필요 컬럼 제거 → 컬럼명 정리 → 중복 제거 → 결측치 처리 → 이상치 탐지 → 시각화
  • 실제 Kaggle 자동차 데이터셋 적용: 11,914행 → 9,191행 (20% 데이터 정제)
  • 중복: 989개 행, 결측치: 99개, 이상치: 약 1,600개 (IQR 기법)
  • 4가지 시각화 계층: 히스토그램(빈도) → 히트맵(상관) → 산점도(관계) → 박스플롯(이상치)
  • 데이터 정제 과정의 투명성 유지 필수: 각 단계별 행 개수 기록으로 변화 추적

상세 요약

9단계 워크플로 상세

Step 1-2: 라이브러리 & 데이터 로드

  • 핵심 도구: pandas (데이터 조작), numpy (수치 연산), matplotlib/seaborn (시각화)
  • CSV 파일을 pandas DataFrame으로 읽기 (pd.read_csv())

Step 3: 자료형 확인 및 컬럼 정리 (Step 4-5)

  • df.dtypes 또는 df.info()로 각 컬럼의 자료형 검증
  • 불필요한 컬럼 제거 (예: 인덱스, 식별자 같은 분석 불필요 열)
  • 컬럼명 표준화 (띄어쓰기 제거, 소문자 변환 등)

Step 6-7: 데이터 정제 (중복 & 결측치)

  • 중복 행 제거: df.duplicated().sum()df.drop_duplicates()
    • 예: 11,914행 중 989개 중복 감지 및 제거
  • 결측치 제거 또는 대체:
    • Drop: 결측치 행 삭제 (간단하나 정보 손실)
    • Impute: 평균/중앙값/모드로 채우기 (정보 보존)
    • 예: 99개 결측치 제거 후 11,825행

Step 8: 이상치 탐지 (Outlier Detection)

  • IQR 기법:
    • Q1 = 25백분위수, Q3 = 75백분위수
    • IQR = Q3 - Q1
    • 이상치 범위: [Q1 - 1.5×IQR, Q3 + 1.5×IQR] 밖의 값
    • 예: 약 1,600개 행이 이상치로 식별됨
  • 제거 또는 별도 검토 필요

Step 9: 시각화를 통한 관계 탐색

4가지 시각화 기법

시각화 1: 히스토그램 (Histogram)

  • 용도: 범주형 변수의 빈도 분포
  • 목적: 어떤 카테고리가 가장 흔한가?
  • 예: 자동차 유형별 개수 분포

시각화 2: 히트맵 (Heatmap)

  • 용도: 수치형 변수 간 상관계수 행렬
  • 색상: 밝음(양의 상관) ↔ 어두움(음의 상관)
  • 패턴: +1(완전 양의 상관) vs -1(완전 음의 상관) vs 0(상관 없음)
  • 목적: 다변량 의존성 한눈에 파악

시각화 3: 산점도 (Scatter Plot)

  • 용도: 두 연속변수 간의 선형/비선형 관계
  • 패턴: 우상향(양의 상관) vs 우하향(음의 상관) vs 분산(관계 없음)

시각화 4: 박스플롯 (Box Plot)

  • 용도: 연속변수의 분포, 이상치, 중앙값, 사분위수
  • 구성: 상자(Q1-Q3) + 중앙선(Q2/중앙값) + 수염(min-max) + 점(이상치)
  • 목적: 이상치 시각적 식별 및 카테고리별 분포 비교

정제 효과 정량화

원본: 11,914행 → 최종: 9,191행 (22% 감소)

  • 중복 제거: -989행
  • 결측치 제거: -99행
  • 이상치 제거: ~1,640행
  • 결과: 더 깔끔하고 신뢰성 있는 데이터셋 확보

선행 개념

이 개념을 배우기 전에 필수로 알아야 할 것:

  • Module 1-3 → python-venv-poetry-conda-leapcell: pandas, matplotlib, seaborn 라이브러리 설치
  • Module 2-1: 이론과 실습을 병행하므로 eda-exploratory-data-analysis-geeksforgeeks와 함께 학습 추천

후속 개념 (이 개념이 선행)

이 개념을 배운 후 다음 단계:

  1. Module 2-3 → data-visualization-3-layer-guide: 시각화 설계 심화
    • 이 소스: 실전 사례(자동차 데이터) 기반 워크플로 제시
    • 다음 단계: 시각화의 계층적 설계 (단변량 → 이변량 → 다변량) 체계화
  2. Module 3: 정제된 데이터로 Decision Tree 등 모델 학습에 활용

연결되는 위키 페이지