손흥민 EPL 18-19 데이터(스탯) 시각화

지난 번에 축구 통계와 데이터 시각화 사례에 대한 포스팅을 남긴 적이 있다.

트위터에서 @DatoBHJ 라는 아이디로 활동하시는 분의 축구 통계 시각화 사례를 너무 재밌게 봤던지라, 나도 직접 데이터를 모아서 이런 방식으로 그려보고 싶었다. 그래서 우선 손흥민 선수 데이터로 직접 시도해봤다. (최종 결과물은 본문 하단에.)

처음이라 시행착오가 좀 있었지만 어쨌든 해냈으니 작업 과정도 함께 남겨본다.


데이터 수집

축구 통계 제공하는 사이트를 여기저기 살펴보았는데, 결국 무료로 데이터를 제공하는 곳은 understat(언더스탯) 아니면 whoscored(후스코어드) 정도였다.

언더스탯이 xG(기대 득점) 같은 좀 더 고도화된(?) 지표를 제공하긴 하는데, 후스코어드에서는 경기당 드리블 개수, 파울 당한 개수, 오프사이드, 볼 소유권 잃은 횟수, 볼 컨트롤 실패 등 좀 더 직접적인 정보들을 확인할 수 있어서 후스코어드 데이터를 가져왔다. (파이썬 selenium으로 크롤링을 했는데, 도중에 해결 못한 문제가 있어서 수동으로 한 번 처리를 하긴 했다. 아무튼)

현재 2019-2020 시즌은 코로나로 전세계 축구 리그가 대부분 중단 혹은 취소된 상황이기 때문에, 전 경기가 마무리된 이전 시즌(2018-2019) 자료를 가져왔다.

데이터 전처리

파이썬 pandas로 몇가지 전처리할 일들이 있었다.

  • 웹페이지 크롤링한 데이터는 문자열이기 때문에 수치형 데이터로 바꿔주었다. 개수가 0인 경우 “-“로 표시되어 있어서 이걸 먼저 “0”으로 바꿔주고 작업했다.
  • 골 수와 어시스트 수는 절대값이었지만, 나머지 지표들은 경기당 숫자였다. 골과 어시스트도 경기당 숫자로 바꿔주었다. 경기 출전 시간으로 나누고 90을 곱했다.
  • 이름/팀/나이/포지션이 하나의 값으로 수집되어서 그걸 분리하는 작업도 했다.

손흥민과 비교할 선수들은 출전 시간 1000분 이상, 공격수 포지션을 기준으로 했다. 총 61명.

시각화

파이썬 matplotlib과 seaborn으로 시각화했다.

이번에 작업하면서 텍스트 값을 내가 원하는 위치에 찍어주는 방법을 익히기도 했고, 기본으로 제공되는 스타일 이외의 배경색이나 폰트 사용, 축이나 눈금 세부 조정도 해보게 됐다.

기본적인 시각화는 모두 파이썬으로 했지만 마무리는 역시 파워포인트로. 사실 PPT 파일에서는 팀 공식 홈페이지에서 선수 사진 가져와서 붙이고, 상단/하단에 텍스트 박스 몇개 추가한 정도가 전부다.

결과물

난 손흥민에 대한 언론의 평가에 국뽕(?)이 많이 껴있어서 과대평가 되었다고 생각해왔는데, 막상 데이터를 보니 내가 예상한 것보다 스탯이 너무 훌륭했다.


얼른 코로나가 해결되어서 다시 리그가 열렸으면 좋겠다.

시간 되면 다른 선수들이나 팀 데이터 가지고도 해봐야지. 이렇게 또 새로운 취미가 생겼다. 축구 데이터 시각화.

댓글로 보고 싶은 내용 남겨주시면
참고해서 그려보겠습니다.

🙂

추천 글

“손흥민 EPL 18-19 데이터(스탯) 시각화”의 1개의 댓글

  1. 핑백: 손흥민 EPL 19-20 데이터(스탯) 시각화 - 아무튼 워라밸

댓글 남기기