데이터 분석 · AI 기초집LESSON 10
그룹화와 집계: 모드·캐릭터·날짜별 성과 비교
난이도초급
예상 시간35분
선수지식이전 강의
10강. 그룹화와 집계: 모드·캐릭터·날짜별 성과 비교
1. 이번 강의에서 해결할 문제
전체 평균은 어느 모드나 캐릭터에서 차이가 생기는지 숨깁니다. 집단별 표본 수와 여러 지표를 함께 비교해야 합니다.
2. 학습 목표
3. 핵심 개념
groupby는 키로 행을 나누고 각 그룹에 집계 함수를 적용한 뒤 결과를 결합합니다. win이 0/1이면 평균은 승률이지만 결측이 없는지 먼저 확인해야 합니다. 평균과 함께 size, 중앙값을 보여야 표본 규모와 치우침을 판단할 수 있습니다.
4. 단계별 실습
1. 예제 파일 작성
실행 환경: 코드 편집기
실행 위치: C:\dev\game-data-lab
실행 전 확인: 기존 파일이 있으면 내용을 덮어쓰지 말고 Git diff로 이번 강의 변경 범위를 확인합니다. 실제 개인정보·API Key·토큰은 사용하지 않습니다.
대상 파일: src/group_sessions.py
src/group_sessions.py
from pathlib import Path
import pandas as pd
df = pd.read_csv("data/processed/game_sessions_clean.csv")
summary = (
df.groupby(["game_mode", "character"], dropna=False)
.agg(matches=("session_id", "size"), win_rate=("win", "mean"), median_score=("score", "median"))
.reset_index()
)
summary["win_rate"] = summary["win_rate"].round(3)
summary = summary.sort_values(["game_mode", "matches", "character"], ascending=[True, False, True])
Path("reports/tables").mkdir(parents=True, exist_ok=True)
summary.to_csv("reports/tables/mode_character_summary.csv", index=False)
print(summary.to_string(index=False))
2. 실행과 결과 확인
실행 환경: Windows PowerShell
실행 위치: C:\dev\game-data-lab
실행 전 확인: Python 코드는 프로젝트의 .venv 인터프리터를 사용하고 입력 파일 경로가 존재하는지 확인합니다.
대상: src/group_sessions.py과 이 강의가 만드는 출력
Windows PowerShell
Set-Location C:\dev\game-data-lab
.\.venv\Scripts\python.exe .\src\group_sessions.py
Get-Content .\reports\tables\mode_character_summary.csv
예상 결과: 모드·캐릭터별 경기 수, 승률, 중앙 점수가 화면과 CSV에 기록됩니다.
5. 분석 또는 모델이 동작하는 이유
size는 결측과 무관한 행 수를 세고 mean은 0/1 win의 비율을 계산합니다. 여러 키를 사용하면 모드 효과와 캐릭터 효과가 섞이는 정도를 줄일 수 있지만 작은 표본의 불확실성은 남습니다.
6. 자주 하는 실수와 해결법
7. 직접 실습
8. 이해 점검 질문 3개
9. 핵심 요약
MINI QUIZ
0 / 2그룹화와 집계: 모드·캐릭터·날짜별 성과 비교 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
LESSON STATUS
10강. 그룹화와 집계: 모드·캐릭터·날짜별 성과 비교 미완료 상태학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.