2024/25 EPL 시즌 팀 성과 대시보드: Python Streamlit 및 Tableau를 활용한 상호작용형 시각화
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
데이터 분석
대상자
- 데이터 분석가, 스포츠 데이터 시각화 개발자, 시각화 툴 활용자
- 난이도: 중급 (Python, Streamlit, Tableau 기초 지식 필요)
핵심 요약
- _Excitement Score_ 계산식:
ExcitementScore = (TotalGoals × 2) + (TotalShots × 0.5) + (BothTeamsScored × 3)
- Streamlit으로 상호작용형 웹 앱 구축 (https://epl202425top5-czzrrxzyuenu4hwwep3axk.streamlit.app/)
- Tableau Public을 활용한 시각적 대시보드 제작 (데이터 출처: www.football-data.co.uk)
섹션별 세부 요약
1. 프로젝트 개요
- EPL 2024/25 시즌 경기 데이터를 기반으로 _Excitement Score_라는 사용자 정의 지표를 설계
- Python과 Streamlit으로 상호작용형 웹 앱 개발, Tableau Public으로 시각적 대시보드 제작
- 주요 분석 지표: 경기 날짜, 홈/원정 팀, 득점, 총 슈팅 수, 양팀 득점 여부
2. _Excitement Score_ 계산 로직
- 총 득점 수(TotalGoals) = 홈팀 득점(FTHG) + 원정팀 득점(FTAG)
- 총 슈팅 수(TotalShots) = 홈팀 슈팅(HS) + 원정팀 슈팅(AS)
- 양팀 득점 여부(BothTeamsScored) = (FTHG > 0) & (FTAG > 0) 조건에 따라 0/1 할당
- ExcitementScore =
TotalGoals 2 + TotalShots 0.5 + BothTeamsScored * 3
3. 톱 5 경기 선정 및 시각화
- _Excitement Score_ 기준으로 상위 5개 경기 선정 (
df.sort_values(by='ExcitementScore', ascending=False).head(5)
) - Streamlit 앱: 경기 상세 정보 필터링, 요약 정보 제공
- Tableau 대시보드: 경기 데이터의 시각적 표현 (동적 차트, 지도, 스타일링)
4. 프로젝트 한계 및 개선 방향
- 현재 한계: 경기 강도 반영을 위한 경고카드(Red/Yellow Cards) 데이터는 현재 기술적 한계로 미포함
- 향후 개선: 사용자 피드백을 반영해 _Excitement Score_ 지표의 정확도 향상
결론
- 실무 적용 팁: 사용자 정의 지표 설계 시 데이터 출처와 사용자 경험을 고려해야 하며, Python 기반 상호작용 앱과 Tableau의 시각화 기능을 결합하는 것이 효과적
- GitHub 링크: https://github.com/k-eunji/epl202425_top5 (소스 코드 및 데이터셋 제공)