728x90
반응형
premier_league_stats.csv
0.00MB
📌 개요
탐색적 데이터 분석(Exploratory Data Analysis, EDA)은 데이터 분석 프로젝트에서 가장 중요한 과정 중 하나입니다. 데이터를 이해하고 패턴을 발견하며, 모델링 전에 데이터의 특성을 파악하는 과정입니다. 이번 포스팅에서는 2024/25 시즌 프리미어리그 선수 스탯 데이터를 활용하여 EDA를 수행하는 방법을 실습해 보겠습니다.
1️⃣ EDA의 주요 과정
EDA는 다음과 같은 단계를 포함합니다:
- 데이터 로드 및 기본 정보 확인 - 데이터의 크기, 변수 정보, 결측치 확인
- 기술 통계 확인 - 데이터의 평균, 표준편차, 분포 분석
- 결측치 및 이상치 처리 - 결측치를 채우거나 제거하고 이상치를 확인하는 과정
- 데이터 시각화 - 변수 간의 관계 분석 및 시각화
- 변수 변환 및 Feature Engineering - 모델 성능을 높이기 위한 데이터 전처리
2️⃣ 데이터셋 로드 및 기본 정보 확인
우리는 2024/25 시즌 프리미어리그 선수 스탯 데이터를 사용하여 EDA를 진행하겠습니다.
import pandas as pd
# 데이터 로드
df = pd.read_csv("premier_league_stats.csv")
# 데이터 기본 정보 확인
print(df.info())
print(df.describe())
📌 샘플 데이터 예시:
| Rank | Name | Team | Goals | Assists | Matchs Played | G.p 90M | M.p Goal | Shoots | Conversion | Acc |
| 1 | Mohamed Salah | Liverpool | 25 | 17 | 28 | 0.91 | 99 | 101 | 25% | 52% |
| 2 | E. Haaland | Man City | 20 | 3 | 26 | 0.78 | 115 | 97 | 21% | 59% |
| 3 | A. Isak | Newcastle | 19 | 5 | 24 | 0.86 | 104 | 68 | 28% | 50% |
3️⃣ 주요 변수별 분석
🔹 득점 순위 분석
print(df[['Name', 'Team', 'Goals']].sort_values(by='Goals', ascending=False).head(10))
📌 결과:
| Name | Team | Goals |
| Mohamed Salah | Liverpool | 25 |
| E. Haaland | Man City | 20 |
| A. Isak | Newcastle | 19 |
| C. Wood | Nottm Forest | 18 |
| B. Mbeumo | Brentford | 15 |
✅ 코멘트:
- Mohamed Salah가 현재 가장 많은 골을 기록하며 득점 1위를 차지하고 있습니다.
- Haaland는 2위이지만 경기당 득점 수치를 보면 1위와의 격차가 크지 않습니다.
- 골 수치는 선수의 공격력을 평가하는 핵심 요소이며, 골 결정력과 비교하여 추가 분석할 수 있습니다.
🔹 어시스트 순위 분석
print(df[['Name', 'Team', 'Assists']].sort_values(by='Assists', ascending=False).head(10))
📌 결과:
| Name | Team | Assists |
| Mohamed Salah | Liverpool | 17 |
| C. Palmer | Chelsea | 6 |
| O. Watkins | Aston Villa | 6 |
| João Pedro | Brighton | 6 |
| J. Kluivert | Bournemouth | 5 |
✅ 코멘트:
- Salah는 득점뿐만 아니라 어시스트에서도 1위를 기록하며 뛰어난 공격 포인트를 보이고 있습니다.
- C. Palmer와 O. Watkins는 팀의 공격 기회를 많이 만들어 주는 선수로 평가될 수 있습니다.
- 어시스트는 플레이메이커 역할을 하는 선수들에게 중요한 지표입니다.
🔹 골 결정력(Goal Conversion)과 유효 슈팅 비율(Shot Accuracy)
print(df[['Name', 'Goal Conversion', 'Shot Accuracy']].sort_values(by='Goal Conversion', ascending=False).head(10))
📌 결과:
| Name | Goal Conversion | Shot Accuracy |
| C. Wood | 37% | 59% |
| A. Isak | 28% | 50% |
| B. Mbeumo | 26% | 53% |
| Mohamed Salah | 25% | 52% |
| J. Maddison | 25% | 47% |
✅ 코멘트:
- C. Wood는 적은 슈팅으로 높은 득점율을 기록하며 효율적인 공격력을 보여줍니다.
- A. Isak과 B. Mbeumo도 높은 골 결정력을 보이며, 기회가 왔을 때 득점할 확률이 높은 선수입니다.
- 슈팅 정확도(Shot Accuracy)와 함께 고려하면, 골 결정력이 높은 선수들의 슈팅 스타일을 분석할 수 있습니다.
🔹 경기당 득점(Goals per 90) 상위 선수
print(df[['Name', 'Goals per 90']].sort_values(by='Goals per 90', ascending=False).head(10))
📌 결과:
| Name | Goals per 90 |
| J. Durán | 1.01 |
| Mohamed Salah | 0.91 |
| A. Isak | 0.86 |
| E. Haaland | 0.78 |
| C. Wood | 0.74 |
✅ 코멘트:
- 경기당 득점에서 J. Durán이 1.01로 1위를 차지하며, 출전 시간 대비 골을 많이 기록하는 선수입니다.
- Salah와 Isak도 경기당 득점력이 뛰어나며, 주전 선수로서 팀 공격의 핵심 역할을 하고 있습니다.
- 이 지표는 출전 시간이 다를 경우에도 선수들의 득점 기여도를 비교할 수 있는 중요한 지표입니다.
📌 마무리
이번 포스팅에서는 2024/25 시즌 프리미어리그 선수 스탯 데이터를 활용하여 EDA를 수행했습니다. 데이터를 이해하고 분석하는 과정이 축구 선수 평가 및 예측 모델링에도 활용될 수 있습니다.
저 처럼 관심사에 맞는 데이터를 구해서 본인의 기존 생각하던 값과 실제 데이터가 말해주는 값을 비교해보는 경험이 데이터를 쉽고 재밌게 접근 할 수 있는 방법으로 추천드립니다!
다음 포스팅에서는 머신러닝 모델을 활용하여 예측하는 분석을 진행하겠습니다! 🚀
728x90
반응형
'Daily Data Log' 카테고리의 다른 글
| [Day 6] 머신러닝 모델 최적화 - 프리미어리그 경기 성과 예측 개선하기 (0) | 2025.03.11 |
|---|---|
| [Day 5] 머신러닝을 활용한 프리미어리그 선수 경기당 득점 예측 (1) | 2025.03.10 |
| [Day 3] Matplotlib & Seaborn을 활용한 데이터 시각화 (0) | 2025.03.08 |
| [Day 2] SQL을 활용한 데이터 추출 및 가공 (0) | 2025.03.07 |
| [Day 1] Pandas로 데이터 핸들링 기본기 다지기 (0) | 2025.03.06 |