데이터 분석 · AI 기초집LESSON 07
데이터 품질 점검: 결측치, 중복, 이상치 찾기
난이도초급
예상 시간35분
선수지식이전 강의
7강. 데이터 품질 점검: 결측치, 중복, 이상치 찾기
1. 이번 강의에서 해결할 문제
품질 문제를 눈으로만 찾으면 새 데이터가 들어올 때 같은 기준을 반복할 수 없습니다. 결측·중복·이상치를 코드와 수치로 보고해야 합니다.
2. 학습 목표
3. 핵심 개념
결측치는 값이 없음, 중복은 관찰 식별 규칙의 반복, 이상치는 기대 범위나 분포에서 벗어난 값입니다. 이상치는 오류일 수도 실제 사건일 수도 있으므로 자동 삭제하지 않고 도메인 규칙과 원본 생성 경로를 확인합니다.
4. 단계별 실습
1. 예제 파일 작성
실행 환경: 코드 편집기
실행 위치: C:\dev\game-data-lab
실행 전 확인: 기존 파일이 있으면 내용을 덮어쓰지 말고 Git diff로 이번 강의 변경 범위를 확인합니다. 실제 개인정보·API Key·토큰은 사용하지 않습니다.
대상 파일: src/audit_quality.py
src/audit_quality.py
from pathlib import Path
import json
import pandas as pd
df = pd.read_csv("data/raw/game_sessions.csv")
duplicate_ids = df.loc[df.duplicated("session_id", keep=False), "session_id"].tolist()
range_violations = df.loc[~df["play_minutes"].between(1, 180), "session_id"].tolist()
report = {
"rows": len(df),
"missing_by_column": df.isna().sum().astype(int).to_dict(),
"duplicate_session_ids": duplicate_ids,
"play_minutes_outside_1_180": range_violations,
}
Path("reports").mkdir(exist_ok=True)
Path("reports/quality_before.json").write_text(
json.dumps(report, ensure_ascii=False, indent=2), encoding="utf-8"
)
print(json.dumps(report, ensure_ascii=False, indent=2))
2. 실행과 결과 확인
실행 환경: Windows PowerShell
실행 위치: C:\dev\game-data-lab
실행 전 확인: Python 코드는 프로젝트의 .venv 인터프리터를 사용하고 입력 파일 경로가 존재하는지 확인합니다.
대상: src/audit_quality.py과 이 강의가 만드는 출력
Windows PowerShell
Set-Location C:\dev\game-data-lab
.\.venv\Scripts\python.exe .\src\audit_quality.py
Get-Content .\reports\quality_before.json
예상 결과: score 결측, S004 중복, S011의 범위 위반이 JSON 보고서에 기록됩니다.
5. 분석 또는 모델이 동작하는 이유
검사 규칙을 코드로 만들면 원본이 바뀌어도 같은 기준을 재실행할 수 있습니다. keep=False는 중복된 모든 행을 보여 주어 어떤 행을 보존할지 검토하게 합니다.
6. 자주 하는 실수와 해결법
7. 직접 실습
8. 이해 점검 질문 3개
9. 핵심 요약
MINI QUIZ
0 / 2데이터 품질 점검: 결측치, 중복, 이상치 찾기 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
LESSON STATUS
7강. 데이터 품질 점검: 결측치, 중복, 이상치 찾기 미완료 상태학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.