• mksong8

[데이터 수집] 미식축구 선수의 연봉 분석 사례




축구는 그 인기만큼이나 관련된 데이터의 양이 급격하게 증가하고 있습니다. 웹스크래핑을 통해 비수기 동안 이루어지는 계약 변경, 드래프트 등 많은 정보와 데이터에 접근할 수 있습니다. ​ 몇 가지 간단한 프로그램으로 스포츠에 관한 데이터를 얻을 수 있습니다. 특히 연봉에 관한 정보는 수집하기가 어렵지 않습니다. 웹 데이터를 추출하기 위해 웹 크롤러를 구축한 다음 데이터 분석을 하여 NFL에 관한 몇몇 가지 궁금증을 풀어보도록 하겠습니다. ​



​ 나이와 연봉의 관계, 어떤 포지션이 연봉이 가장 높은지 등의 흥미로운 인사이트들을 얻을 수 있을 것입니다. 먼저, NFL 선수들의 연봉 데이터를 수집해 보겠습니다. 이렇게 수집된 데이터를 이용해 보고서를 작성합니다. ​ | 사용 도구 ​ NFL 플레이어의 계약 및 연봉에 관한 데이터를 제공하는 overthecap.com 사이트를 웹 크롤링 하겠습니다. 파이썬으로 웹 크롤러를 구현하여 판다스 라이브러리와 MySQL을 이용해 데이터를 저장하고, matplotlib으로 차트를 그려보겠습니다. ​ ​ | 프로세스 ​ 데이터 수집 - 데이터 정리 및 정제 - 데이터 분석 - 결론 ​ ​ | 데이터 수집https://overthecap.com/position/quarterback/ 는 쿼터백 페이지입니다. 이 페이지뿐만이 아니라 모든 페이지에 대해 데이터를 수집합니다. ​ 웹 크롤러는 선수, 팀, 나이, 포지션, Total Value, Avg./Year, Total Guaranteed, Fully Guaranteed, Free Agency의 데이터를 수집합니다. ​ ​ | 웹사이트 분석 ​ 웹 데이터를 수집하기 위해 웹 구조를 분석합니다. 수집해야 할 데이터는 html 테이블 안에 위치하고 있습니다. ​



| 웹 크롤러 ​ 크롤러를 프로그래밍 하면서 극복해야 할 문제가 있는데 바로 자바스크립트를 처리하는 것입니다. 이번 프로젝트에서는 가장 간단한 방법으로 이 문제를 해결하도록 하겠습니다. ​ 먼저, 파이썬 파일을 만들고 클래스를 정의합니다. 그런 다음 URL을 정의합니다. 각각의 URL에 요청을 하고 파싱을 하고 데이터를 수집합니다. ​ ​ | 데이터 정제 ​ 먼저 html 태그를 제거하고 데이터를 변환합니다. 숫자와 텍스트는 각각의 타입으로 데이터를 저장해야 합니다. age, total_value, avg_year, total_guaranteed, fully_guaranteed, free_agency_year 변수는 모두 숫자로 변환되어야 합니다. 플레이어 필드를 확인하여 중복이 된 데이터는 삭제하도록 합니다. ​ ​ | 데이터베이스 ​ MySQL에 접속하여 수집한 데이터를 데이터베이스에 저장합니다. ​ ​ | 데이터 분석 ​ 판다스의 데이터 프레임을 이용하여 데이터를 분석하겠습니다. NFL 플레이어의 연봉과 관련된 변수들 간의 관계를 알아보도록 하겠습니다. ​ 수집된 데이터를 간단하게 요약해 보겠습니다. ​ - 가장 나이가 어린 NFL 플레이어는 21세입니다. - 가장 나이가 많은 NFL 플레이어는 47세입니다. - 플레이어의 평균 나이는 26세입니다. - 가장 계약기간이 긴 계약은 2025년까지입니다. - 유효한 계약의 평균 계약 기간은 2년입니다. ​ ​ | 연봉 분석 ​ NFL 선수 중 최소 연봉은 480,000 달러입니다. 연봉이 가장 높은 탑5 플레이어는 모두 QB이며, Aaron Rodgers가 연봉 33,500,000 달러로 가장 연봉이 높습니다. 탑5 중 5위는 28세의 Jimmy Garoppolo로 연봉이 280,000,000 달러입니다. ​ ​ | 계약 기간 분석 ​ 프리 에이전트가 되기까지 남은 기간을 분석해 보겠습니다. 장기 계약을 한 플레이어는 4명으로 분석되었는데 대부분 28~29세이며, Landon Collins은 25세입니다. ​ ​ | 계약 기간 분포 ​ 플레이어의 계약기간을 분석해 보겠습니다. 분석 결과 내년에 1천 명 이상의 플레이어들이 재계약을 하게 될 것입니다. 600여 명의 플레이어는 2년, 400명 미만의 플레이어가 3년 이상의 계약기간이 남아 있습니다. 소수의 플레이어만이 4년 이상의 계약 기간이 남아있습니다. ​ ​ | 계약 기간과 연령과의 상관관계 ​ 플레이어의 계약 기간과 연령과의 상관관계를 분석해 보겠습니다. 평균 신인 계약은 3년이고 그 이후에는 1년 도는 2년 계약이기 때문에 22세와 26 사이엔 계약 기간과 나이 사이에 음의 상관관계가 발견되었습니다. ​ ​ | 연령 분포 ​ 대부분의 플레이어는 24~26세입니다. 26세가 플레이어의 평균, 중간 값입니다. ​ ​ | 나이와 포지션의 관계



​ - long snappers의 40% 이상이 31세 이상입니다. - QB positiondml 30%가 31세 이상입니다. - Center position에서 가장 많은 비율을 차지하는 나이대는 25~30세입니다. - RBs는 21~24세의 비율이 가장 높으며 40%를 차지하고 있습니다. ​ ​ | 장기 계약은 고액 연봉과 관련이 있을까요? ​ 네, 맞습니다. 계약기간이 길면 평균 연봉이 높은 것으로 분석되었습니다. 계약 기간이 3년 이상이면 연봉 상승률이 매우 높습니다. ​ ​ | 결론 ​ 이번 글에서는 웹사이트 분석, 데이터 수집, 데이터 정제, 데이터 저장, 데이터 분석에 이르는 전체 프로세스 과정을 다루었습니다. 웹 크롤링을 통해 통찰력을 얻고 데이터 분석 결과를 바탕으로 바른 의사결정을 내리는데 많은 도움이 되길 바랍니다. : )

조회 33회

​고객센터

Tel: 02-596-8900  Fax : 02-6930-5709

10시 - 오후 7시(토, 일요일 및 공휴일은 휴무)

개인정보관리책임자 : 황재준   상호 : 유펜솔루션   대표자 : 김재훈   사업자등록번호 : 426-86-00939
주소 : (본사)대전광역시 유성구 엑스포로446번길 38, 3층 302호 / (지사 및 연구소)서울시 성동구 연무장 15길 11, B동 2층
​ⓒ 2019 UpennSolution Co., Ltd. All rights reserved.