스포츠데이터를 EDA하며 간단한 분석을 해보았습니다. 우리팀엔 어떤 선수들이 필요할까?!
스포츠 데이터 분석 : 유럽 축구 분석
부제 - Arsenal의 부활을 위해 필요한 선수는 누구?!
Introduction
지난 2018년 4월 20일 Arsenal F.C를 20여년간 지도했던 위대한 명장 Arsène Wenger이 성적 부진을 이유로 감독직에서 해임되었다.
이후 성적 반등을 위해 UEFA 유로파리그 3연패라는 대업을 이룬 Unai Emery 감독을 선임후 1년간의 적응기를 거친뒤 2019-2020시즌 구단의 지원하에 베테랑
및 고가의 몸값을 가진 선수를 성공적으로 영입하며 기대에 부응해줄 것을 고대했다.
하지만 그의 성적은 한때 리그 10위권 밖으로 내려가는등
EPL이라는 영국 프로축구리그의 Top4로 불리던 옛 영광을 재현하지 못하였고 결국 리그8위라는 처참한 성적을 내고 말았다.
asdfadf
이후 팀의 리빌딩을 위해 Arsenal F.C출신의 레전드 선수 Mikel Arteta를 감독으로 임명하였으나
그 또한 이번 시즌 (2020-2021)을 8위로 마감하며 구단과 팬들의 기대에 부응하지 못하였다.
이러한 구단의 부진에는 두 감독의 부족한 전술운영 능력등에 대한 영향도 있겠지만, Unai Emery 감독이 2019-2020시즌에 1000억이라는 거금으로 영입한 Nicolas Pépé나 베테랑 David Luiz의 부진, 그리고 유망주로서 영입한 선수들이 성장세를 보이지 못한 점 등이 팬들에게 많은 비판을 받고 있다.
당시에 영입한 선수들로 인한 팀의 부진 등은 현재도 지속되고 있기에 “당시에 어떤 선수를 방출하고 영입했어야 좋았을까?” 라는 팬심을 담아
FIFA 에서 제공하는 2018-2019의 선수데이터를 통해 Arsenal F.C를 분석한 뒤 대체로 영입했으면 좋았을 선수들을 선정해 보겠다.
데이터 수집
a. 데이터 불러오기
1
2
3
4
5
6
7
8
9
10
11
12
# 분석에 필요한 모듈 불러오기
import pandas as pd
import os
# 컬럼 전체 확인 가능하도록 출력 범위 설정
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 1000)
# 불필요한 경고 표시 생략
import warnings
warnings.filterwarnings(action = 'ignore')
1
os.listdir()
['.ipynb_checkpoints', 'FIFA_data(origin).csv', 'FIFA_data.csv', '[EDA] 아스널은 누구를 영입했어야 했을까 (EDA 로 스포츠 데이터 분석하기).ipynb']
1
2
# 분석할 데이터 로드
data = pd.read_csv('FIFA_data.csv')
1
2
# 데이터 확인
data.head()
Unnamed: 0 | ID | Name | Age | Nationality | Overall | Potential | Club | Value | Wage | Preferred Foot | International Reputation | Weak Foot | Skill Moves | Position | Jersey Number | Joined | Contract Valid Until | Height | Weight | LS | ST | RS | LW | LF | CF | RF | RW | LAM | CAM | RAM | LM | LCM | CM | RCM | RM | LWB | LDM | CDM | RDM | RWB | LB | LCB | CB | RCB | RB | Crossing | Finishing | HeadingAccuracy | ShortPassing | Volleys | Dribbling | Curve | FKAccuracy | LongPassing | BallControl | Acceleration | SprintSpeed | Agility | Reactions | Balance | ShotPower | Jumping | Stamina | Strength | LongShots | Aggression | Interceptions | Positioning | Vision | Penalties | Composure | Marking | StandingTackle | SlidingTackle | GKDiving | GKHandling | GKKicking | GKPositioning | GKReflexes | Release Clause | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 158023 | L. Messi | 31 | Argentina | 94.0 | 94.0 | FC Barcelona | €110.5M | €565K | Left | 5.0 | 4.0 | 4.0 | RF | 10.0 | Jul 1, 2004 | 2021 | 5'7 | 159lbs | 88+2 | 88+2 | 88+2 | 92+2 | 93+2 | 93+2 | 93+2 | 92+2 | 93+2 | 93+2 | 93+2 | 91+2 | 84+2 | 84+2 | 84+2 | 91+2 | 64+2 | 61+2 | 61+2 | 61+2 | 64+2 | 59+2 | 47+2 | 47+2 | 47+2 | 59+2 | 84.0 | 95.0 | 70.0 | 90.0 | 86.0 | 97.0 | 93.0 | 94.0 | 87.0 | 96.0 | 91.0 | 86.0 | 91.0 | 95.0 | 95.0 | 85.0 | 68.0 | 72.0 | 59.0 | 94.0 | 48.0 | 22.0 | 94.0 | 94.0 | 75.0 | 96.0 | 33.0 | 28.0 | 26.0 | 6.0 | 11.0 | 15.0 | 14.0 | 8.0 | €226.5M |
1 | 1 | 20801 | Cristiano Ronaldo | 33 | Portugal | 94.0 | 94.0 | Juventus | €77M | €405K | Right | 5.0 | 4.0 | 5.0 | ST | 7.0 | Jul 10, 2018 | 2022 | 6'2 | 183lbs | 91+3 | 91+3 | 91+3 | 89+3 | 90+3 | 90+3 | 90+3 | 89+3 | 88+3 | 88+3 | 88+3 | 88+3 | 81+3 | 81+3 | 81+3 | 88+3 | 65+3 | 61+3 | 61+3 | 61+3 | 65+3 | 61+3 | 53+3 | 53+3 | 53+3 | 61+3 | 84.0 | 94.0 | 89.0 | 81.0 | 87.0 | 88.0 | 81.0 | 76.0 | 77.0 | 94.0 | 89.0 | 91.0 | 87.0 | 96.0 | 70.0 | 95.0 | 95.0 | 88.0 | 79.0 | 93.0 | 63.0 | 29.0 | 95.0 | 82.0 | 85.0 | 95.0 | 28.0 | 31.0 | 23.0 | 7.0 | 11.0 | 15.0 | 14.0 | 11.0 | €127.1M |
2 | 2 | 190871 | Neymar Jr | 26 | Brazil | 92.0 | 93.0 | Paris Saint-Germain | €118.5M | €290K | Right | 5.0 | 5.0 | 5.0 | LW | 10.0 | Aug 3, 2017 | 2022 | 5'9 | 150lbs | 84+3 | 84+3 | 84+3 | 89+3 | 89+3 | 89+3 | 89+3 | 89+3 | 89+3 | 89+3 | 89+3 | 88+3 | 81+3 | 81+3 | 81+3 | 88+3 | 65+3 | 60+3 | 60+3 | 60+3 | 65+3 | 60+3 | 47+3 | 47+3 | 47+3 | 60+3 | 79.0 | 87.0 | 62.0 | 84.0 | 84.0 | 96.0 | 88.0 | 87.0 | 78.0 | 95.0 | 94.0 | 90.0 | 96.0 | 94.0 | 84.0 | 80.0 | 61.0 | 81.0 | 49.0 | 82.0 | 56.0 | 36.0 | 89.0 | 87.0 | 81.0 | 94.0 | 27.0 | 24.0 | 33.0 | 9.0 | 9.0 | 15.0 | 15.0 | 11.0 | €228.1M |
3 | 3 | 193080 | De Gea | 27 | Spain | 91.0 | 93.0 | Manchester United | €72M | €260K | Right | 4.0 | 3.0 | 1.0 | GK | 1.0 | Jul 1, 2011 | 2020 | 6'4 | 168lbs | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 17.0 | 13.0 | 21.0 | 50.0 | 13.0 | 18.0 | 21.0 | 19.0 | 51.0 | 42.0 | 57.0 | 58.0 | 60.0 | 90.0 | 43.0 | 31.0 | 67.0 | 43.0 | 64.0 | 12.0 | 38.0 | 30.0 | 12.0 | 68.0 | 40.0 | 68.0 | 15.0 | 21.0 | 13.0 | 90.0 | 85.0 | 87.0 | 88.0 | 94.0 | €138.6M |
4 | 4 | 192985 | K. De Bruyne | 27 | Belgium | 91.0 | 92.0 | Manchester City | €102M | €355K | Right | 4.0 | 5.0 | 4.0 | RCM | 7.0 | Aug 30, 2015 | 2023 | 5'11 | 154lbs | 82+3 | 82+3 | 82+3 | 87+3 | 87+3 | 87+3 | 87+3 | 87+3 | 88+3 | 88+3 | 88+3 | 88+3 | 87+3 | 87+3 | 87+3 | 88+3 | 77+3 | 77+3 | 77+3 | 77+3 | 77+3 | 73+3 | 66+3 | 66+3 | 66+3 | 73+3 | 93.0 | 82.0 | 55.0 | 92.0 | 82.0 | 86.0 | 85.0 | 83.0 | 91.0 | 91.0 | 78.0 | 76.0 | 79.0 | 91.0 | 77.0 | 91.0 | 63.0 | 90.0 | 75.0 | 91.0 | 76.0 | 61.0 | 87.0 | 94.0 | 79.0 | 88.0 | 68.0 | 58.0 | 51.0 | 15.0 | 13.0 | 5.0 | 10.0 | 13.0 | €196.4M |
b. 데이터 확인 및 분석 계획 설립
번호 | 컬럼 명 | 컬럼 의미 | 번호 | 컬럼 명 | 컬럼 의미 |
---|---|---|---|---|---|
1 | ID | 고유의 번호 | 11 | Skill Moves | 개인기 |
2 | Name | 이름 | 12 | Position | 포지션 |
3 | Age | 나이 | 13 | Jersey Number | 등번호 |
4 | Overall | 현재 능력치 | 14 | Joined | 소속 팀 입단 날짜 |
5 | Potential | 잠재 능력치 | 15 | Contract Valid Until | 계약 기간 |
6 | Club | 소속 팀 | 16 | Height | 키 (피트) |
7 | Value | 예상 이적료 (유로) | 17 | Weight | 몸무게 (파운드) |
8 | Wage | 주급 (유로) | 18~26 | LS ~ RB | 포지션 별 능력치 |
9 | Preferred Foot | 잘 사용하는 발 | 27~79 | Crossing ~ GKReflexes | 세부 능력치 |
10 | Weak Foot | 잘 사용하지 않는 발 | 80 | Release Clause | 바이아웃 |
해당 컬럼들을 이용해서 어떻게 주제에 맞게 분석을 할지 고민
분석 순서
-
Arsenal F.C.의 선수들을 분석
-
Arsenal F.C.의 지역 라이벌 Chelsea F.C. 선수와 능력치 비교
-
라이벌팀 대비 부족한 포지션 2개 선정
-
다른팀의 선수 중 Arsenal F.C.의 재정, 현실가능성, 영입방침을 고려하여 2명의 선수를 영입
본격적 데이터 분석에 앞선 기초 전처리
Value, Wage 등 수치값이지만 화폐단위등과 같이 입력되어 str 형태인 데이터들을 숫자로 변환
분석 데이터가 2020년 데이터 이므로 유로환율을 2020년 평균으로 환산
2020년 유로 평균 환율 = 1,368.16
1M = 1,000,000
1K = 1,000
1
2
3
4
5
6
7
8
9
10
11
# 화폐관련 데이터의 각 단위에 맞게 숫자로 변경
# M = 000,000 으로 대체
# K = 000 으로 대체
data['Value'] = data['Value'].str.replace('M','000000')
data['Value'] = data['Value'].str.replace('K','000')
data['Wage'] = data['Wage'].str.replace('M','000000')
data['Wage'] = data['Wage'].str.replace('K','000')
data['Release Clause'] = data['Release Clause'].str.replace('M','000000')
data['Release Clause'] = data['Release Clause'].str.replace('K','000')
1
2
print(data[['Value', 'Wage','Release Clause']].info())
data[['Value', 'Wage','Release Clause']]
<class 'pandas.core.frame.DataFrame'> RangeIndex: 18207 entries, 0 to 18206 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Value 18207 non-null object 1 Wage 18207 non-null object 2 Release Clause 16643 non-null object dtypes: object(3) memory usage: 426.9+ KB None
Value | Wage | Release Clause | |
---|---|---|---|
0 | €110.5000000 | €565000 | €226.5000000 |
1 | €77000000 | €405000 | €127.1000000 |
2 | €118.5000000 | €290000 | €228.1000000 |
3 | €72000000 | €260000 | €138.6000000 |
4 | €102000000 | €355000 | €196.4000000 |
... | ... | ... | ... |
18202 | €60000 | €1000 | €143000 |
18203 | €60000 | €1000 | €113000 |
18204 | €60000 | €1000 | €165000 |
18205 | €60000 | €1000 | €143000 |
18206 | €60000 | €1000 | €165000 |
18207 rows × 3 columns
숫자 앞의 € 를 제외 하는 작업
인덱싱을 활용하여 1번째 자리에 있는 값부터 그 뒤의 값을 전부 slicing
여러번 반복하면 slicing한 상태에서 또 slincing을 하기 때문에 여러번 반복하지 않도록 주의
1
2
3
4
5
6
7
8
data['Value'] = data['Value'].str.slice(1,)
data['Wage'] = data['Wage'].str.slice(1,)
data['Release Clause'] = data['Release Clause'].str.slice(1,)
# 결과 확인
data[['Value', 'Wage','Release Clause']]
Value | Wage | Release Clause | |
---|---|---|---|
0 | 110.5000000 | 565000 | 226.5000000 |
1 | 77000000 | 405000 | 127.1000000 |
2 | 118.5000000 | 290000 | 228.1000000 |
3 | 72000000 | 260000 | 138.6000000 |
4 | 102000000 | 355000 | 196.4000000 |
... | ... | ... | ... |
18202 | 60000 | 1000 | 143000 |
18203 | 60000 | 1000 | 113000 |
18204 | 60000 | 1000 | 165000 |
18205 | 60000 | 1000 | 143000 |
18206 | 60000 | 1000 | 165000 |
18207 rows × 3 columns
- M, K 등으로 소수점 이 들어가있던 자료의 소수점을 제거
1
2
3
4
5
6
7
8
9
data['Value'] = data['Value'].str.replace('.','')
data['Wage'] = data['Wage'].str.replace('.','')
data['Release Clause'] = data['Release Clause'].str.replace('.','')
# 결과 확인
print(data[['Value', 'Wage','Release Clause']].info())
data[['Value', 'Wage','Release Clause']]
<class 'pandas.core.frame.DataFrame'> RangeIndex: 18207 entries, 0 to 18206 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Value 18207 non-null object 1 Wage 18207 non-null object 2 Release Clause 16643 non-null object dtypes: object(3) memory usage: 426.9+ KB None
Value | Wage | Release Clause | |
---|---|---|---|
0 | 1105000000 | 565000 | 2265000000 |
1 | 77000000 | 405000 | 1271000000 |
2 | 1185000000 | 290000 | 2281000000 |
3 | 72000000 | 260000 | 1386000000 |
4 | 102000000 | 355000 | 1964000000 |
... | ... | ... | ... |
18202 | 60000 | 1000 | 143000 |
18203 | 60000 | 1000 | 113000 |
18204 | 60000 | 1000 | 165000 |
18205 | 60000 | 1000 | 143000 |
18206 | 60000 | 1000 | 165000 |
18207 rows × 3 columns
- 문자형으로된 숫자값을 숫자형으로 변환
1
2
3
4
5
6
7
8
data['Value'] = data['Value'].astype(float)
data['Wage'] = data['Wage'].astype(float)
data['Release Clause'] = data['Release Clause'].astype(float)
# 결과 확인
print(data[['Value', 'Wage','Release Clause']].info())
<class 'pandas.core.frame.DataFrame'> RangeIndex: 18207 entries, 0 to 18206 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Value 18207 non-null float64 1 Wage 18207 non-null float64 2 Release Clause 16643 non-null float64 dtypes: float64(3) memory usage: 426.9 KB None
1
data[['Value', 'Wage','Release Clause']]
Value | Wage | Release Clause | |
---|---|---|---|
0 | 1.105000e+09 | 565000.0 | 2.265000e+09 |
1 | 7.700000e+07 | 405000.0 | 1.271000e+09 |
2 | 1.185000e+09 | 290000.0 | 2.281000e+09 |
3 | 7.200000e+07 | 260000.0 | 1.386000e+09 |
4 | 1.020000e+08 | 355000.0 | 1.964000e+09 |
... | ... | ... | ... |
18202 | 6.000000e+04 | 1000.0 | 1.430000e+05 |
18203 | 6.000000e+04 | 1000.0 | 1.130000e+05 |
18204 | 6.000000e+04 | 1000.0 | 1.650000e+05 |
18205 | 6.000000e+04 | 1000.0 | 1.430000e+05 |
18206 | 6.000000e+04 | 1000.0 | 1.650000e+05 |
18207 rows × 3 columns
Arsenal F.C 분석 - Arsenal F.C는 어떤 선수들이 존재하는가?
a. EDA
1
2
3
# data 의 데이터는 모든 축구선수 데이터를 포함하고 있기 때문에 Arsernal F.C. 선수 데이터 분석을 위해 별도 테이블 생성
gunners = data[data['Club']== 'Arsenal']
1
2
3
4
5
# 추출된 결과 확인 (Arsenal 선수들만 추출된 것인지) - 2개 모두 가능
#gunners.Club.unique()
gunners['Club'].unique()
array(['Arsenal'], dtype=object)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 추출된 gunners 테이블의 세부 데이터를 print 하여 확인
# print() 함수에 'f'를 입력하면 "" 내에서 변수를 사용 할 수 있다.
# 실행할 함수는 {} 사이에 입력한다.
print(f"아스널 선수들의 총 인원 : {gunners.shape[0]}") #print(f"총 인원 : {len(gunners)} ") 도 가능
print("\n")
print(f"아스널 선수들의 평균 연령 : {gunners['Age'].mean():.2f}") # "출력할 내용 : .숫자f" 로 소수점 조절 가능
print("\n")
print(f"아스널 선수들의 포지션 종류 : {gunners['Position'].unique()}")
print("\n")
print(f"아스널 선수들의 평균 능력치 : {gunners['Overall'].mean():.2f}") # "출력할 내용 : .숫자f" 로 소수점 조절 가능
print("\n")
print(f"아스널 선수들의 평균 잠재 능력치 : {gunners['Potential'].mean():.2f}") # "출력할 내용 : .숫자f" 로 소수점 조절 가능
아스널 선수들의 총 인원 : 33 아스널 선수들의 평균 연령 : 24.61 아스널 선수들의 포지션 종류 : ['LS' 'CAM' 'ST' 'GK' 'RCB' 'RM' 'LCM' 'CB' 'LDM' 'RB' 'LB' 'LM' 'LW' 'RDM' 'CDM' 'CM'] 아스널 선수들의 평균 능력치 : 75.18 아스널 선수들의 평균 잠재 능력치 : 81.39
1
gunners
Unnamed: 0 | ID | Name | Age | Nationality | Overall | Potential | Club | Value | Wage | Preferred Foot | International Reputation | Weak Foot | Skill Moves | Position | Jersey Number | Joined | Contract Valid Until | Height | Weight | LS | ST | RS | LW | LF | CF | RF | RW | LAM | CAM | RAM | LM | LCM | CM | RCM | RM | LWB | LDM | CDM | RDM | RWB | LB | LCB | CB | RCB | RB | Crossing | Finishing | HeadingAccuracy | ShortPassing | Volleys | Dribbling | Curve | FKAccuracy | LongPassing | BallControl | Acceleration | SprintSpeed | Agility | Reactions | Balance | ShotPower | Jumping | Stamina | Strength | LongShots | Aggression | Interceptions | Positioning | Vision | Penalties | Composure | Marking | StandingTackle | SlidingTackle | GKDiving | GKHandling | GKKicking | GKPositioning | GKReflexes | Release Clause | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
33 | 33 | 188567 | P. Aubameyang | 29 | Gabon | 88.0 | 88.0 | Arsenal | 59000000.0 | 265000.0 | Right | 3.0 | 4.0 | 4.0 | LS | 14.0 | Jan 31, 2018 | 2021 | 6'2 | 176lbs | 84+3 | 84+3 | 84+3 | 83+3 | 83+3 | 83+3 | 83+3 | 83+3 | 81+3 | 81+3 | 81+3 | 81+3 | 73+3 | 73+3 | 73+3 | 81+3 | 64+3 | 58+3 | 58+3 | 58+3 | 64+3 | 61+3 | 52+3 | 52+3 | 52+3 | 61+3 | 77.0 | 88.0 | 79.0 | 77.0 | 86.0 | 79.0 | 80.0 | 74.0 | 64.0 | 82.0 | 93.0 | 95.0 | 76.0 | 87.0 | 70.0 | 82.0 | 79.0 | 76.0 | 76.0 | 79.0 | 43.0 | 48.0 | 90.0 | 77.0 | 76.0 | 86.0 | 27.0 | 25.0 | 36.0 | 6.0 | 9.0 | 15.0 | 9.0 | 9.0 | 1.121000e+09 |
74 | 74 | 176635 | M. Özil | 29 | Germany | 86.0 | 86.0 | Arsenal | 435000000.0 | 190000.0 | Left | 4.0 | 2.0 | 4.0 | CAM | 10.0 | Sep 2, 2013 | 2021 | 5'11 | 168lbs | 75+3 | 75+3 | 75+3 | 82+3 | 81+3 | 81+3 | 81+3 | 82+3 | 84+3 | 84+3 | 84+3 | 82+3 | 78+3 | 78+3 | 78+3 | 82+3 | 57+3 | 56+3 | 56+3 | 56+3 | 57+3 | 52+3 | 40+3 | 40+3 | 40+3 | 52+3 | 83.0 | 73.0 | 54.0 | 89.0 | 80.0 | 84.0 | 84.0 | 77.0 | 82.0 | 90.0 | 72.0 | 69.0 | 79.0 | 84.0 | 70.0 | 70.0 | 48.0 | 69.0 | 57.0 | 75.0 | 48.0 | 24.0 | 83.0 | 91.0 | 67.0 | 82.0 | 24.0 | 16.0 | 19.0 | 6.0 | 14.0 | 10.0 | 6.0 | 14.0 | 8.270000e+08 |
87 | 87 | 193301 | A. Lacazette | 27 | France | 85.0 | 86.0 | Arsenal | 45000000.0 | 180000.0 | Right | 3.0 | 4.0 | 4.0 | ST | 9.0 | Jul 5, 2017 | 2022 | 5'9 | 161lbs | 82+3 | 82+3 | 82+3 | 81+3 | 83+3 | 83+3 | 83+3 | 81+3 | 81+3 | 81+3 | 81+3 | 79+3 | 74+3 | 74+3 | 74+3 | 79+3 | 62+3 | 60+3 | 60+3 | 60+3 | 62+3 | 59+3 | 54+3 | 54+3 | 54+3 | 59+3 | 64.0 | 88.0 | 73.0 | 80.0 | 81.0 | 85.0 | 74.0 | 71.0 | 59.0 | 83.0 | 81.0 | 84.0 | 85.0 | 85.0 | 85.0 | 83.0 | 76.0 | 79.0 | 73.0 | 75.0 | 70.0 | 42.0 | 86.0 | 76.0 | 84.0 | 85.0 | 29.0 | 42.0 | 30.0 | 11.0 | 6.0 | 9.0 | 5.0 | 6.0 | 8.890000e+08 |
131 | 131 | 192563 | B. Leno | 26 | Germany | 84.0 | 87.0 | Arsenal | 27000000.0 | 115000.0 | Right | 3.0 | 4.0 | 1.0 | GK | 12.0 | Jul 1, 2018 | 2023 | 6'3 | 183lbs | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 9.0 | 9.0 | 13.0 | 45.0 | 10.0 | 16.0 | 9.0 | 8.0 | 40.0 | 22.0 | 46.0 | 52.0 | 52.0 | 80.0 | 44.0 | 23.0 | 73.0 | 43.0 | 68.0 | 14.0 | 28.0 | 22.0 | 7.0 | 54.0 | 23.0 | 66.0 | 27.0 | 15.0 | 18.0 | 84.0 | 82.0 | 75.0 | 85.0 | 82.0 | 5.330000e+08 |
146 | 146 | 172879 | Sokratis | 30 | Greece | 84.0 | 84.0 | Arsenal | 23000000.0 | 140000.0 | Right | 3.0 | 2.0 | 2.0 | RCB | 19.0 | Jul 2, 2018 | 2021 | 6'1 | 187lbs | 62+3 | 62+3 | 62+3 | 56+3 | 58+3 | 58+3 | 58+3 | 56+3 | 56+3 | 56+3 | 56+3 | 57+3 | 59+3 | 59+3 | 59+3 | 57+3 | 70+3 | 71+3 | 71+3 | 71+3 | 70+3 | 73+3 | 81+3 | 81+3 | 81+3 | 73+3 | 47.0 | 44.0 | 85.0 | 60.0 | 46.0 | 58.0 | 29.0 | 35.0 | 51.0 | 58.0 | 64.0 | 73.0 | 60.0 | 81.0 | 64.0 | 77.0 | 86.0 | 69.0 | 86.0 | 48.0 | 88.0 | 77.0 | 49.0 | 45.0 | 24.0 | 82.0 | 85.0 | 87.0 | 85.0 | 6.0 | 8.0 | 5.0 | 12.0 | 5.0 | 4.370000e+08 |
199 | 199 | 192883 | H. Mkhitaryan | 29 | Armenia | 83.0 | 83.0 | Arsenal | 255000000.0 | 145000.0 | Right | 3.0 | 5.0 | 4.0 | RM | 7.0 | Jan 22, 2018 | 2021 | 5'10 | 165lbs | 76+3 | 76+3 | 76+3 | 81+3 | 80+3 | 80+3 | 80+3 | 81+3 | 81+3 | 81+3 | 81+3 | 80+3 | 78+3 | 78+3 | 78+3 | 80+3 | 70+3 | 68+3 | 68+3 | 68+3 | 70+3 | 67+3 | 59+3 | 59+3 | 59+3 | 67+3 | 77.0 | 74.0 | 53.0 | 80.0 | 81.0 | 84.0 | 83.0 | 64.0 | 71.0 | 86.0 | 84.0 | 78.0 | 87.0 | 79.0 | 85.0 | 85.0 | 69.0 | 83.0 | 62.0 | 73.0 | 69.0 | 64.0 | 82.0 | 84.0 | 72.0 | 76.0 | 41.0 | 53.0 | 55.0 | 5.0 | 11.0 | 14.0 | 5.0 | 7.0 | 4.850000e+08 |
235 | 235 | 223959 | L. Torreira | 22 | Uruguay | 82.0 | 87.0 | Arsenal | 25000000.0 | 98000.0 | Right | 2.0 | 3.0 | 3.0 | LCM | 14.0 | Jul 12, 2018 | 2023 | 5'6 | 141lbs | 68+2 | 68+2 | 68+2 | 74+2 | 73+2 | 73+2 | 73+2 | 74+2 | 75+2 | 75+2 | 75+2 | 75+2 | 78+2 | 78+2 | 78+2 | 75+2 | 80+2 | 81+2 | 81+2 | 81+2 | 80+2 | 79+2 | 77+2 | 77+2 | 77+2 | 79+2 | 74.0 | 50.0 | 55.0 | 83.0 | 65.0 | 78.0 | 66.0 | 76.0 | 77.0 | 81.0 | 81.0 | 74.0 | 83.0 | 79.0 | 93.0 | 78.0 | 52.0 | 85.0 | 66.0 | 74.0 | 85.0 | 87.0 | 65.0 | 74.0 | 48.0 | 78.0 | 84.0 | 84.0 | 75.0 | 5.0 | 5.0 | 13.0 | 7.0 | 9.0 | 4.940000e+08 |
281 | 281 | 192227 | S. Mustafi | 26 | Germany | 82.0 | 84.0 | Arsenal | 225000000.0 | 115000.0 | Right | 3.0 | 3.0 | 2.0 | RCB | 20.0 | Aug 30, 2016 | 2021 | 6'0 | 181lbs | 64+3 | 64+3 | 64+3 | 61+3 | 62+3 | 62+3 | 62+3 | 61+3 | 63+3 | 63+3 | 63+3 | 62+3 | 67+3 | 67+3 | 67+3 | 62+3 | 72+3 | 76+3 | 76+3 | 76+3 | 72+3 | 74+3 | 80+3 | 80+3 | 80+3 | 74+3 | 53.0 | 58.0 | 81.0 | 77.0 | 51.0 | 53.0 | 55.0 | 47.0 | 69.0 | 70.0 | 58.0 | 65.0 | 63.0 | 82.0 | 67.0 | 66.0 | 83.0 | 68.0 | 78.0 | 52.0 | 82.0 | 82.0 | 50.0 | 55.0 | 54.0 | 73.0 | 80.0 | 82.0 | 82.0 | 11.0 | 9.0 | 15.0 | 10.0 | 6.0 | 4.440000e+08 |
289 | 289 | 186561 | A. Ramsey | 27 | Wales | 82.0 | 83.0 | Arsenal | 25000000.0 | 130000.0 | Right | 3.0 | 3.0 | 3.0 | CAM | 10.0 | Jun 13, 2008 | 2019 | 6'0 | 168lbs | 75+3 | 75+3 | 75+3 | 77+3 | 78+3 | 78+3 | 78+3 | 77+3 | 79+3 | 79+3 | 79+3 | 78+3 | 80+3 | 80+3 | 80+3 | 78+3 | 75+3 | 75+3 | 75+3 | 75+3 | 75+3 | 72+3 | 69+3 | 69+3 | 69+3 | 72+3 | 75.0 | 74.0 | 58.0 | 84.0 | 79.0 | 81.0 | 70.0 | 66.0 | 80.0 | 82.0 | 64.0 | 69.0 | 73.0 | 81.0 | 74.0 | 81.0 | 66.0 | 89.0 | 67.0 | 74.0 | 73.0 | 69.0 | 84.0 | 79.0 | 75.0 | 81.0 | 66.0 | 70.0 | 67.0 | 6.0 | 11.0 | 5.0 | 10.0 | 8.0 | 4.940000e+08 |
311 | 311 | 165229 | L. Koscielny | 32 | France | 82.0 | 82.0 | Arsenal | 125000000.0 | 115000.0 | Right | 3.0 | 3.0 | 2.0 | CB | 6.0 | Jul 7, 2010 | 2020 | 6'1 | 165lbs | 57+3 | 57+3 | 57+3 | 58+3 | 58+3 | 58+3 | 58+3 | 58+3 | 60+3 | 60+3 | 60+3 | 60+3 | 65+3 | 65+3 | 65+3 | 60+3 | 71+3 | 75+3 | 75+3 | 75+3 | 71+3 | 74+3 | 80+3 | 80+3 | 80+3 | 74+3 | 52.0 | 32.0 | 80.0 | 76.0 | 35.0 | 62.0 | 22.0 | 49.0 | 69.0 | 66.0 | 64.0 | 66.0 | 65.0 | 76.0 | 61.0 | 54.0 | 78.0 | 62.0 | 75.0 | 47.0 | 86.0 | 84.0 | 41.0 | 56.0 | 51.0 | 75.0 | 80.0 | 84.0 | 83.0 | 13.0 | 11.0 | 9.0 | 11.0 | 7.0 | 2.380000e+08 |
317 | 317 | 48940 | P. Čech | 36 | Czech Republic | 82.0 | 82.0 | Arsenal | 3000000.0 | 60000.0 | Left | 4.0 | 3.0 | 1.0 | GK | 1.0 | Jun 29, 2015 | 2019 | 6'5 | 198lbs | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 19.0 | 12.0 | 19.0 | 35.0 | 17.0 | 12.0 | 13.0 | 19.0 | 33.0 | 22.0 | 35.0 | 38.0 | 46.0 | 77.0 | 34.0 | 21.0 | 50.0 | 32.0 | 63.0 | 11.0 | 17.0 | 23.0 | 13.0 | 53.0 | 23.0 | 63.0 | 12.0 | 13.0 | 12.0 | 78.0 | 82.0 | 70.0 | 83.0 | 79.0 | 5.700000e+07 |
364 | 364 | 199503 | G. Xhaka | 25 | Switzerland | 81.0 | 84.0 | Arsenal | 22000000.0 | 115000.0 | Left | 3.0 | 2.0 | 3.0 | LDM | 10.0 | Jul 1, 2016 | 2021 | 6'1 | 181lbs | 68+3 | 68+3 | 68+3 | 69+3 | 71+3 | 71+3 | 71+3 | 69+3 | 74+3 | 74+3 | 74+3 | 71+3 | 79+3 | 79+3 | 79+3 | 71+3 | 71+3 | 77+3 | 77+3 | 77+3 | 71+3 | 70+3 | 71+3 | 71+3 | 71+3 | 70+3 | 71.0 | 49.0 | 62.0 | 85.0 | 50.0 | 70.0 | 73.0 | 77.0 | 85.0 | 80.0 | 47.0 | 49.0 | 49.0 | 77.0 | 61.0 | 88.0 | 32.0 | 80.0 | 75.0 | 80.0 | 92.0 | 71.0 | 77.0 | 81.0 | 63.0 | 74.0 | 68.0 | 72.0 | 68.0 | 7.0 | 8.0 | 11.0 | 7.0 | 13.0 | 4.350000e+08 |
464 | 464 | 203747 | Héctor Bellerín | 23 | Spain | 80.0 | 85.0 | Arsenal | 165000000.0 | 85000.0 | Right | 3.0 | 3.0 | 3.0 | RB | 2.0 | Jul 1, 2014 | 2023 | 5'10 | 163lbs | 65+3 | 65+3 | 65+3 | 73+3 | 70+3 | 70+3 | 70+3 | 73+3 | 71+3 | 71+3 | 71+3 | 75+3 | 71+3 | 71+3 | 71+3 | 75+3 | 79+3 | 74+3 | 74+3 | 74+3 | 79+3 | 79+3 | 73+3 | 73+3 | 73+3 | 79+3 | 76.0 | 52.0 | 60.0 | 76.0 | 41.0 | 75.0 | 63.0 | 50.0 | 59.0 | 78.0 | 94.0 | 91.0 | 82.0 | 78.0 | 77.0 | 52.0 | 63.0 | 84.0 | 58.0 | 43.0 | 72.0 | 77.0 | 67.0 | 66.0 | 62.0 | 70.0 | 75.0 | 78.0 | 80.0 | 8.0 | 14.0 | 14.0 | 13.0 | 12.0 | 3.260000e+08 |
520 | 520 | 177604 | Nacho Monreal | 32 | Spain | 80.0 | 80.0 | Arsenal | 8000000.0 | 99000.0 | Left | 2.0 | 3.0 | 3.0 | LB | 18.0 | Jan 31, 2013 | 2019 | 5'10 | 159lbs | 68+2 | 68+2 | 68+2 | 70+2 | 70+2 | 70+2 | 70+2 | 70+2 | 70+2 | 70+2 | 70+2 | 71+2 | 72+2 | 72+2 | 72+2 | 71+2 | 77+2 | 76+2 | 76+2 | 76+2 | 77+2 | 77+2 | 77+2 | 77+2 | 77+2 | 77+2 | 76.0 | 55.0 | 72.0 | 77.0 | 58.0 | 73.0 | 74.0 | 52.0 | 61.0 | 77.0 | 72.0 | 67.0 | 70.0 | 82.0 | 73.0 | 74.0 | 74.0 | 74.0 | 65.0 | 61.0 | 77.0 | 81.0 | 66.0 | 66.0 | 61.0 | 76.0 | 80.0 | 83.0 | 81.0 | 7.0 | 5.0 | 9.0 | 3.0 | 5.0 | 1.520000e+08 |
606 | 606 | 207993 | S. Kolašinac | 25 | Bosnia Herzegovina | 79.0 | 82.0 | Arsenal | 13000000.0 | 89000.0 | Left | 2.0 | 2.0 | 3.0 | LB | 31.0 | Jul 1, 2017 | 2022 | 6'0 | 187lbs | 70+2 | 70+2 | 70+2 | 69+2 | 70+2 | 70+2 | 70+2 | 69+2 | 68+2 | 68+2 | 68+2 | 70+2 | 69+2 | 69+2 | 69+2 | 70+2 | 76+2 | 74+2 | 74+2 | 74+2 | 76+2 | 76+2 | 78+2 | 78+2 | 78+2 | 76+2 | 77.0 | 59.0 | 74.0 | 76.0 | 48.0 | 73.0 | 43.0 | 25.0 | 53.0 | 74.0 | 68.0 | 75.0 | 49.0 | 77.0 | 55.0 | 82.0 | 76.0 | 79.0 | 90.0 | 58.0 | 93.0 | 73.0 | 66.0 | 60.0 | 44.0 | 72.0 | 73.0 | 81.0 | 80.0 | 15.0 | 9.0 | 16.0 | 7.0 | 9.0 | 2.570000e+08 |
723 | 723 | 108080 | S. Lichtsteiner | 34 | Switzerland | 79.0 | 79.0 | Arsenal | 36000000.0 | 94000.0 | Right | 3.0 | 3.0 | 3.0 | RB | 2.0 | Jul 1, 2018 | 2019 | 6'0 | 168lbs | 67+3 | 67+3 | 67+3 | 70+3 | 69+3 | 69+3 | 69+3 | 70+3 | 69+3 | 69+3 | 69+3 | 71+3 | 72+3 | 72+3 | 72+3 | 71+3 | 77+3 | 76+3 | 76+3 | 76+3 | 77+3 | 77+3 | 77+3 | 77+3 | 77+3 | 77+3 | 78.0 | 45.0 | 70.0 | 77.0 | 62.0 | 76.0 | 68.0 | 66.0 | 70.0 | 76.0 | 65.0 | 69.0 | 73.0 | 79.0 | 77.0 | 74.0 | 73.0 | 76.0 | 70.0 | 68.0 | 82.0 | 82.0 | 66.0 | 62.0 | 64.0 | 80.0 | 78.0 | 80.0 | 80.0 | 4.0 | 3.0 | 2.0 | 3.0 | 2.0 | 6.800000e+07 |
789 | 789 | 213655 | A. Iwobi | 22 | Nigeria | 78.0 | 84.0 | Arsenal | 14000000.0 | 81000.0 | Right | 1.0 | 3.0 | 4.0 | LM | 17.0 | Jul 1, 2013 | 2023 | 6'1 | 165lbs | 69+2 | 69+2 | 69+2 | 76+2 | 75+2 | 75+2 | 75+2 | 76+2 | 77+2 | 77+2 | 77+2 | 76+2 | 70+2 | 70+2 | 70+2 | 76+2 | 57+2 | 54+2 | 54+2 | 54+2 | 57+2 | 51+2 | 42+2 | 42+2 | 42+2 | 51+2 | 67.0 | 64.0 | 42.0 | 81.0 | 48.0 | 84.0 | 50.0 | 40.0 | 63.0 | 84.0 | 80.0 | 77.0 | 76.0 | 75.0 | 75.0 | 67.0 | 47.0 | 74.0 | 70.0 | 54.0 | 46.0 | 24.0 | 75.0 | 80.0 | 59.0 | 72.0 | 30.0 | 26.0 | 23.0 | 14.0 | 7.0 | 12.0 | 14.0 | 11.0 | 2.940000e+08 |
933 | 933 | 186146 | D. Welbeck | 27 | England | 77.0 | 77.0 | Arsenal | 95000000.0 | 95000.0 | Right | 3.0 | 3.0 | 3.0 | LW | 21.0 | Sep 2, 2014 | 2019 | 6'1 | 161lbs | 77+3 | 77+3 | 77+3 | 76+3 | 76+3 | 76+3 | 76+3 | 76+3 | 75+3 | 75+3 | 75+3 | 75+3 | 69+3 | 69+3 | 69+3 | 75+3 | 60+3 | 59+3 | 59+3 | 59+3 | 60+3 | 58+3 | 55+3 | 55+3 | 55+3 | 58+3 | 69.0 | 75.0 | 78.0 | 75.0 | 76.0 | 78.0 | 61.0 | 62.0 | 64.0 | 78.0 | 76.0 | 83.0 | 76.0 | 78.0 | 62.0 | 78.0 | 80.0 | 74.0 | 75.0 | 69.0 | 75.0 | 32.0 | 79.0 | 71.0 | 70.0 | 76.0 | 47.0 | 38.0 | 33.0 | 9.0 | 10.0 | 6.0 | 12.0 | 16.0 | 1.810000e+08 |
959 | 959 | 213051 | M. Elneny | 25 | Egypt | 77.0 | 79.0 | Arsenal | 9000000.0 | 76000.0 | Right | 1.0 | 3.0 | 3.0 | RDM | 17.0 | Jan 14, 2016 | 2022 | 5'11 | 163lbs | 65+2 | 65+2 | 65+2 | 67+2 | 68+2 | 68+2 | 68+2 | 67+2 | 70+2 | 70+2 | 70+2 | 70+2 | 74+2 | 74+2 | 74+2 | 70+2 | 74+2 | 76+2 | 76+2 | 76+2 | 74+2 | 73+2 | 71+2 | 71+2 | 71+2 | 73+2 | 66.0 | 57.0 | 57.0 | 80.0 | 39.0 | 68.0 | 69.0 | 56.0 | 77.0 | 76.0 | 58.0 | 60.0 | 65.0 | 75.0 | 62.0 | 76.0 | 69.0 | 92.0 | 68.0 | 67.0 | 73.0 | 76.0 | 63.0 | 70.0 | 62.0 | 77.0 | 76.0 | 74.0 | 72.0 | 7.0 | 15.0 | 15.0 | 12.0 | 6.0 | 1.780000e+08 |
1495 | 1495 | 228295 | R. Holding | 22 | England | 76.0 | 83.0 | Arsenal | 95000000.0 | 64000.0 | Right | 1.0 | 3.0 | 2.0 | CB | 16.0 | Jul 26, 2016 | 2022 | 6'2 | 165lbs | 53+2 | 53+2 | 53+2 | 55+2 | 55+2 | 55+2 | 55+2 | 55+2 | 57+2 | 57+2 | 57+2 | 59+2 | 62+2 | 62+2 | 62+2 | 59+2 | 68+2 | 71+2 | 71+2 | 71+2 | 68+2 | 70+2 | 75+2 | 75+2 | 75+2 | 70+2 | 52.0 | 30.0 | 75.0 | 72.0 | 27.0 | 62.0 | 33.0 | 30.0 | 61.0 | 67.0 | 58.0 | 61.0 | 58.0 | 70.0 | 67.0 | 48.0 | 75.0 | 68.0 | 76.0 | 27.0 | 72.0 | 77.0 | 40.0 | 57.0 | 38.0 | 79.0 | 77.0 | 78.0 | 76.0 | 14.0 | 11.0 | 10.0 | 14.0 | 13.0 | 2.000000e+07 |
3392 | 3392 | 202811 | E. Martínez | 25 | Argentina | 72.0 | 77.0 | Arsenal | 3000000.0 | 40000.0 | Right | 1.0 | 3.0 | 1.0 | GK | 26.0 | Jul 1, 2010 | 2020 | 6'4 | 187lbs | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 22.0 | 16.0 | 26.0 | 27.0 | 23.0 | 13.0 | 22.0 | 20.0 | 46.0 | 26.0 | 59.0 | 57.0 | 49.0 | 64.0 | 49.0 | 18.0 | 60.0 | 14.0 | 70.0 | 16.0 | 37.0 | 13.0 | 12.0 | 50.0 | 42.0 | 53.0 | 11.0 | 20.0 | 20.0 | 73.0 | 69.0 | 75.0 | 70.0 | 74.0 | 5.800000e+07 |
4590 | 4590 | 236496 | M. Guendouzi | 19 | France | 71.0 | 84.0 | Arsenal | 4000000.0 | 20000.0 | Right | 1.0 | 3.0 | 3.0 | CDM | 29.0 | Jul 11, 2018 | 2023 | 6'1 | 150lbs | 62+2 | 62+2 | 62+2 | 65+2 | 64+2 | 64+2 | 64+2 | 65+2 | 67+2 | 67+2 | 67+2 | 66+2 | 69+2 | 69+2 | 69+2 | 66+2 | 67+2 | 69+2 | 69+2 | 69+2 | 67+2 | 66+2 | 66+2 | 66+2 | 66+2 | 66+2 | 67.0 | 56.0 | 64.0 | 74.0 | 49.0 | 69.0 | 68.0 | 55.0 | 75.0 | 68.0 | 66.0 | 60.0 | 64.0 | 67.0 | 65.0 | 69.0 | 66.0 | 69.0 | 63.0 | 65.0 | 73.0 | 71.0 | 51.0 | 73.0 | 49.0 | 73.0 | 62.0 | 69.0 | 64.0 | 6.0 | 13.0 | 6.0 | 13.0 | 11.0 | 1.000000e+07 |
4719 | 4719 | 225782 | A. Maitland-Niles | 20 | England | 71.0 | 84.0 | Arsenal | 45000000.0 | 38000.0 | Right | 1.0 | 3.0 | 3.0 | CM | 15.0 | Oct 24, 2014 | 2019 | 5'10 | 157lbs | 64+2 | 64+2 | 64+2 | 70+2 | 69+2 | 69+2 | 69+2 | 70+2 | 70+2 | 70+2 | 70+2 | 70+2 | 69+2 | 69+2 | 69+2 | 70+2 | 68+2 | 67+2 | 67+2 | 67+2 | 68+2 | 66+2 | 61+2 | 61+2 | 61+2 | 66+2 | 64.0 | 56.0 | 38.0 | 74.0 | 44.0 | 73.0 | 60.0 | 36.0 | 69.0 | 72.0 | 82.0 | 85.0 | 76.0 | 69.0 | 70.0 | 65.0 | 55.0 | 69.0 | 66.0 | 62.0 | 58.0 | 66.0 | 66.0 | 70.0 | 54.0 | 77.0 | 57.0 | 66.0 | 60.0 | 15.0 | 9.0 | 7.0 | 10.0 | 13.0 | 1.140000e+08 |
6136 | 6136 | 200841 | C. Jenkinson | 26 | England | 69.0 | 71.0 | Arsenal | 1000000.0 | 34000.0 | Right | 2.0 | 2.0 | 3.0 | RB | 25.0 | Jun 8, 2011 | 2020 | 6'1 | 170lbs | 61+2 | 61+2 | 61+2 | 63+2 | 62+2 | 62+2 | 62+2 | 63+2 | 62+2 | 62+2 | 62+2 | 65+2 | 64+2 | 64+2 | 64+2 | 65+2 | 68+2 | 67+2 | 67+2 | 67+2 | 68+2 | 68+2 | 68+2 | 68+2 | 68+2 | 68+2 | 71.0 | 41.0 | 62.0 | 66.0 | 60.0 | 67.0 | 60.0 | 52.0 | 64.0 | 68.0 | 58.0 | 73.0 | 60.0 | 69.0 | 66.0 | 72.0 | 63.0 | 64.0 | 69.0 | 41.0 | 71.0 | 66.0 | 67.0 | 62.0 | 49.0 | 62.0 | 69.0 | 73.0 | 72.0 | 12.0 | 15.0 | 15.0 | 11.0 | 12.0 | 2.000000e+06 |
6937 | 6937 | 242000 | K. Mavropanos | 20 | Greece | 68.0 | 83.0 | Arsenal | 18000000.0 | 21000.0 | Right | 1.0 | 2.0 | 2.0 | CB | 27.0 | Jan 4, 2018 | 2022 | 6'4 | 194lbs | 44+2 | 44+2 | 44+2 | 41+2 | 41+2 | 41+2 | 41+2 | 41+2 | 41+2 | 41+2 | 41+2 | 44+2 | 46+2 | 46+2 | 46+2 | 44+2 | 56+2 | 58+2 | 58+2 | 58+2 | 56+2 | 59+2 | 66+2 | 66+2 | 66+2 | 59+2 | 37.0 | 30.0 | 66.0 | 47.0 | 30.0 | 41.0 | 32.0 | 37.0 | 48.0 | 42.0 | 52.0 | 60.0 | 55.0 | 57.0 | 39.0 | 45.0 | 67.0 | 64.0 | 79.0 | 26.0 | 65.0 | 62.0 | 30.0 | 37.0 | 42.0 | 53.0 | 70.0 | 74.0 | 72.0 | 12.0 | 11.0 | 11.0 | 10.0 | 7.0 | 4.500000e+07 |
7069 | 7069 | 222576 | Pleguezuelo | 21 | Spain | 68.0 | 77.0 | Arsenal | 12000000.0 | 21000.0 | Right | 1.0 | 4.0 | 3.0 | CB | 53.0 | Apr 11, 2014 | 2019 | 5'11 | 139lbs | 52+2 | 52+2 | 52+2 | 57+2 | 55+2 | 55+2 | 55+2 | 57+2 | 57+2 | 57+2 | 57+2 | 59+2 | 59+2 | 59+2 | 59+2 | 59+2 | 65+2 | 65+2 | 65+2 | 65+2 | 65+2 | 66+2 | 67+2 | 67+2 | 67+2 | 66+2 | 53.0 | 32.0 | 62.0 | 71.0 | 37.0 | 66.0 | 40.0 | 44.0 | 59.0 | 70.0 | 71.0 | 70.0 | 73.0 | 59.0 | 69.0 | 38.0 | 75.0 | 61.0 | 65.0 | 35.0 | 66.0 | 72.0 | 41.0 | 40.0 | 43.0 | 59.0 | 65.0 | 68.0 | 70.0 | 14.0 | 15.0 | 8.0 | 11.0 | 9.0 | 2.500000e+07 |
10424 | 10424 | 216699 | G. Zelalem | 21 | United States | 65.0 | 75.0 | Arsenal | 875000.0 | 15000.0 | Right | 1.0 | 3.0 | 3.0 | CM | 60.0 | Mar 18, 2014 | 2018 | 5'11 | 154lbs | 56+2 | 56+2 | 56+2 | 61+2 | 60+2 | 60+2 | 60+2 | 61+2 | 64+2 | 64+2 | 64+2 | 62+2 | 63+2 | 63+2 | 63+2 | 62+2 | 54+2 | 56+2 | 56+2 | 56+2 | 54+2 | 53+2 | 49+2 | 49+2 | 49+2 | 53+2 | 51.0 | 49.0 | 49.0 | 73.0 | 55.0 | 64.0 | 65.0 | 54.0 | 71.0 | 70.0 | 65.0 | 56.0 | 65.0 | 59.0 | 73.0 | 51.0 | 53.0 | 60.0 | 58.0 | 45.0 | 40.0 | 38.0 | 55.0 | 70.0 | 56.0 | 65.0 | 41.0 | 48.0 | 49.0 | 10.0 | 14.0 | 12.0 | 13.0 | 10.0 | 1.800000e+07 |
11579 | 11579 | 240273 | E. Smith Rowe | 17 | England | 64.0 | 85.0 | Arsenal | 975000.0 | 10000.0 | Right | 1.0 | 3.0 | 4.0 | LW | 55.0 | Jul 31, 2017 | 2019 | 6'0 | 141lbs | 59+2 | 59+2 | 59+2 | 64+2 | 62+2 | 62+2 | 62+2 | 64+2 | 62+2 | 62+2 | 62+2 | 63+2 | 55+2 | 55+2 | 55+2 | 63+2 | 50+2 | 45+2 | 45+2 | 45+2 | 50+2 | 47+2 | 38+2 | 38+2 | 38+2 | 47+2 | 60.0 | 61.0 | 36.0 | 59.0 | 55.0 | 67.0 | 67.0 | 58.0 | 49.0 | 67.0 | 78.0 | 79.0 | 73.0 | 53.0 | 68.0 | 69.0 | 47.0 | 61.0 | 44.0 | 60.0 | 39.0 | 24.0 | 58.0 | 59.0 | 64.0 | 60.0 | 37.0 | 30.0 | 31.0 | 11.0 | 8.0 | 14.0 | 8.0 | 10.0 | 2.800000e+07 |
11765 | 11765 | 236988 | E. Nketiah | 19 | England | 64.0 | 84.0 | Arsenal | 975000.0 | 10000.0 | Right | 1.0 | 3.0 | 3.0 | ST | 49.0 | Jul 1, 2015 | 2021 | 5'9 | 154lbs | 63+2 | 63+2 | 63+2 | 62+2 | 63+2 | 63+2 | 63+2 | 62+2 | 61+2 | 61+2 | 61+2 | 60+2 | 53+2 | 53+2 | 53+2 | 60+2 | 42+2 | 39+2 | 39+2 | 39+2 | 42+2 | 40+2 | 34+2 | 34+2 | 34+2 | 40+2 | 33.0 | 66.0 | 51.0 | 54.0 | 56.0 | 65.0 | 43.0 | 38.0 | 46.0 | 62.0 | 87.0 | 82.0 | 76.0 | 66.0 | 72.0 | 60.0 | 73.0 | 54.0 | 56.0 | 59.0 | 43.0 | 16.0 | 65.0 | 52.0 | 57.0 | 60.0 | 14.0 | 19.0 | 15.0 | 12.0 | 10.0 | 11.0 | 9.0 | 5.0 | 2.800000e+07 |
12497 | 12497 | 237169 | C. Bramall | 22 | England | 63.0 | 70.0 | Arsenal | 425000.0 | 12000.0 | Left | 1.0 | 2.0 | 2.0 | LB | 39.0 | Jan 9, 2017 | 2019 | 5'10 | 159lbs | 54+2 | 54+2 | 54+2 | 60+2 | 58+2 | 58+2 | 58+2 | 60+2 | 58+2 | 58+2 | 58+2 | 61+2 | 57+2 | 57+2 | 57+2 | 61+2 | 62+2 | 58+2 | 58+2 | 58+2 | 62+2 | 61+2 | 57+2 | 57+2 | 57+2 | 61+2 | 58.0 | 36.0 | 45.0 | 60.0 | 37.0 | 63.0 | 48.0 | 44.0 | 58.0 | 62.0 | 88.0 | 88.0 | 74.0 | 55.0 | 67.0 | 55.0 | 64.0 | 64.0 | 56.0 | 58.0 | 59.0 | 59.0 | 53.0 | 50.0 | 34.0 | 52.0 | 56.0 | 57.0 | 59.0 | 11.0 | 8.0 | 7.0 | 14.0 | 12.0 | 8.930000e+05 |
13999 | 13999 | 237329 | J. Willock | 18 | England | 61.0 | 79.0 | Arsenal | 525000.0 | 7000.0 | Right | 1.0 | 3.0 | 3.0 | CM | 59.0 | Jul 1, 2016 | 2022 | 6'0 | 157lbs | 53+2 | 53+2 | 53+2 | 57+2 | 57+2 | 57+2 | 57+2 | 57+2 | 59+2 | 59+2 | 59+2 | 59+2 | 59+2 | 59+2 | 59+2 | 59+2 | 57+2 | 58+2 | 58+2 | 58+2 | 57+2 | 56+2 | 54+2 | 54+2 | 54+2 | 56+2 | 44.0 | 36.0 | 41.0 | 64.0 | 42.0 | 62.0 | 51.0 | 46.0 | 62.0 | 62.0 | 68.0 | 74.0 | 70.0 | 54.0 | 72.0 | 58.0 | 55.0 | 63.0 | 62.0 | 46.0 | 55.0 | 56.0 | 58.0 | 64.0 | 47.0 | 60.0 | 54.0 | 55.0 | 51.0 | 11.0 | 6.0 | 12.0 | 8.0 | 9.0 | 1.300000e+07 |
15157 | 15157 | 240334 | Z. Medley | 17 | England | 60.0 | 78.0 | Arsenal | 375000.0 | 5000.0 | Right | 1.0 | 3.0 | 2.0 | CB | 47.0 | Aug 2, 2017 | 2019 | 6'4 | 165lbs | 40+2 | 40+2 | 40+2 | 38+2 | 39+2 | 39+2 | 39+2 | 38+2 | 39+2 | 39+2 | 39+2 | 40+2 | 43+2 | 43+2 | 43+2 | 40+2 | 52+2 | 53+2 | 53+2 | 53+2 | 52+2 | 54+2 | 59+2 | 59+2 | 59+2 | 54+2 | 34.0 | 25.0 | 55.0 | 43.0 | 35.0 | 34.0 | 34.0 | 29.0 | 37.0 | 41.0 | 54.0 | 49.0 | 49.0 | 56.0 | 57.0 | 41.0 | 70.0 | 58.0 | 63.0 | 27.0 | 48.0 | 60.0 | 32.0 | 37.0 | 43.0 | 50.0 | 61.0 | 70.0 | 63.0 | 10.0 | 11.0 | 5.0 | 10.0 | 14.0 | 9.470000e+05 |
16216 | 16216 | 233442 | J. Osei-Tutu | 19 | England | 58.0 | 74.0 | Arsenal | 240000.0 | 4000.0 | Right | 1.0 | 3.0 | 2.0 | RB | 52.0 | Oct 6, 2015 | 2021 | 5'10 | 159lbs | 48+2 | 48+2 | 48+2 | 51+2 | 49+2 | 49+2 | 49+2 | 51+2 | 48+2 | 48+2 | 48+2 | 52+2 | 47+2 | 47+2 | 47+2 | 52+2 | 56+2 | 51+2 | 51+2 | 51+2 | 56+2 | 56+2 | 54+2 | 54+2 | 54+2 | 56+2 | 49.0 | 37.0 | 44.0 | 46.0 | 29.0 | 50.0 | 43.0 | 34.0 | 30.0 | 52.0 | 74.0 | 78.0 | 55.0 | 58.0 | 65.0 | 33.0 | 62.0 | 65.0 | 63.0 | 35.0 | 58.0 | 56.0 | 49.0 | 44.0 | 42.0 | 48.0 | 52.0 | 54.0 | 56.0 | 10.0 | 13.0 | 7.0 | 11.0 | 10.0 | 6.060000e+05 |
1
2
3
# 데이터 시각화를 위해 seabron 로드
import seaborn as sns
1
2
3
# Arsenal F.C의 나이대분포 확인
sns.countplot(gunners['Age'])
<AxesSubplot:xlabel='Age', ylabel='count'>
1
2
3
# Arsenal F.C의 포지션 분포 확인
sns.countplot(gunners['Position'])
<AxesSubplot:xlabel='Position', ylabel='count'>
1
2
3
# 포지션별 능력치 분포에 이상치가 있는지 확인 - boxplot 사용
sns.boxplot(data = gunners, x = 'Position', y = 'Overall')
<AxesSubplot:xlabel='Position', ylabel='Overall'>
1
2
3
# 포지션별 잠재력 분포에 이상치가 있는지 확인 - boxplot 사용
sns.boxplot(data = gunners, x = 'Position', y = 'Potential')
<AxesSubplot:xlabel='Position', ylabel='Potential'>
결측치 찾기
1
gunners.info()
<class 'pandas.core.frame.DataFrame'> Int64Index: 33 entries, 33 to 16216 Data columns (total 81 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Unnamed: 0 33 non-null int64 1 ID 33 non-null int64 2 Name 33 non-null object 3 Age 33 non-null int64 4 Nationality 33 non-null object 5 Overall 33 non-null float64 6 Potential 33 non-null float64 7 Club 33 non-null object 8 Value 33 non-null float64 9 Wage 33 non-null float64 10 Preferred Foot 33 non-null object 11 International Reputation 33 non-null float64 12 Weak Foot 33 non-null float64 13 Skill Moves 33 non-null float64 14 Position 33 non-null object 15 Jersey Number 33 non-null float64 16 Joined 33 non-null object 17 Contract Valid Until 33 non-null object 18 Height 33 non-null object 19 Weight 33 non-null object 20 LS 30 non-null object 21 ST 30 non-null object 22 RS 30 non-null object 23 LW 30 non-null object 24 LF 30 non-null object 25 CF 30 non-null object 26 RF 30 non-null object 27 RW 30 non-null object 28 LAM 30 non-null object 29 CAM 30 non-null object 30 RAM 30 non-null object 31 LM 30 non-null object 32 LCM 30 non-null object 33 CM 30 non-null object 34 RCM 30 non-null object 35 RM 30 non-null object 36 LWB 30 non-null object 37 LDM 30 non-null object 38 CDM 30 non-null object 39 RDM 30 non-null object 40 RWB 30 non-null object 41 LB 30 non-null object 42 LCB 30 non-null object 43 CB 30 non-null object 44 RCB 30 non-null object 45 RB 30 non-null object 46 Crossing 33 non-null float64 47 Finishing 33 non-null float64 48 HeadingAccuracy 33 non-null float64 49 ShortPassing 33 non-null float64 50 Volleys 33 non-null float64 51 Dribbling 33 non-null float64 52 Curve 33 non-null float64 53 FKAccuracy 33 non-null float64 54 LongPassing 33 non-null float64 55 BallControl 33 non-null float64 56 Acceleration 33 non-null float64 57 SprintSpeed 33 non-null float64 58 Agility 33 non-null float64 59 Reactions 33 non-null float64 60 Balance 33 non-null float64 61 ShotPower 33 non-null float64 62 Jumping 33 non-null float64 63 Stamina 33 non-null float64 64 Strength 33 non-null float64 65 LongShots 33 non-null float64 66 Aggression 33 non-null float64 67 Interceptions 33 non-null float64 68 Positioning 33 non-null float64 69 Vision 33 non-null float64 70 Penalties 33 non-null float64 71 Composure 33 non-null float64 72 Marking 33 non-null float64 73 StandingTackle 33 non-null float64 74 SlidingTackle 33 non-null float64 75 GKDiving 33 non-null float64 76 GKHandling 33 non-null float64 77 GKKicking 33 non-null float64 78 GKPositioning 33 non-null float64 79 GKReflexes 33 non-null float64 80 Release Clause 33 non-null float64 dtypes: float64(43), int64(3), object(35) memory usage: 22.4+ KB
1
2
3
4
5
6
7
# LS ~ RB 컬럼에 3개씩 결측치가 있음
# 어떤 데이터에서 누락이 발생하는지 확인
gunners[gunners.isnull()['LS']]
# 포지션이 GK인 선수는 다른 포지션들의 값이 비어있는 것이 원인
Unnamed: 0 | ID | Name | Age | Nationality | Overall | Potential | Club | Value | Wage | Preferred Foot | International Reputation | Weak Foot | Skill Moves | Position | Jersey Number | Joined | Contract Valid Until | Height | Weight | LS | ST | RS | LW | LF | CF | RF | RW | LAM | CAM | RAM | LM | LCM | CM | RCM | RM | LWB | LDM | CDM | RDM | RWB | LB | LCB | CB | RCB | RB | Crossing | Finishing | HeadingAccuracy | ShortPassing | Volleys | Dribbling | Curve | FKAccuracy | LongPassing | BallControl | Acceleration | SprintSpeed | Agility | Reactions | Balance | ShotPower | Jumping | Stamina | Strength | LongShots | Aggression | Interceptions | Positioning | Vision | Penalties | Composure | Marking | StandingTackle | SlidingTackle | GKDiving | GKHandling | GKKicking | GKPositioning | GKReflexes | Release Clause | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
131 | 131 | 192563 | B. Leno | 26 | Germany | 84.0 | 87.0 | Arsenal | 27000000.0 | 115000.0 | Right | 3.0 | 4.0 | 1.0 | GK | 12.0 | Jul 1, 2018 | 2023 | 6'3 | 183lbs | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 9.0 | 9.0 | 13.0 | 45.0 | 10.0 | 16.0 | 9.0 | 8.0 | 40.0 | 22.0 | 46.0 | 52.0 | 52.0 | 80.0 | 44.0 | 23.0 | 73.0 | 43.0 | 68.0 | 14.0 | 28.0 | 22.0 | 7.0 | 54.0 | 23.0 | 66.0 | 27.0 | 15.0 | 18.0 | 84.0 | 82.0 | 75.0 | 85.0 | 82.0 | 533000000.0 |
317 | 317 | 48940 | P. Čech | 36 | Czech Republic | 82.0 | 82.0 | Arsenal | 3000000.0 | 60000.0 | Left | 4.0 | 3.0 | 1.0 | GK | 1.0 | Jun 29, 2015 | 2019 | 6'5 | 198lbs | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 19.0 | 12.0 | 19.0 | 35.0 | 17.0 | 12.0 | 13.0 | 19.0 | 33.0 | 22.0 | 35.0 | 38.0 | 46.0 | 77.0 | 34.0 | 21.0 | 50.0 | 32.0 | 63.0 | 11.0 | 17.0 | 23.0 | 13.0 | 53.0 | 23.0 | 63.0 | 12.0 | 13.0 | 12.0 | 78.0 | 82.0 | 70.0 | 83.0 | 79.0 | 57000000.0 |
3392 | 3392 | 202811 | E. Martínez | 25 | Argentina | 72.0 | 77.0 | Arsenal | 3000000.0 | 40000.0 | Right | 1.0 | 3.0 | 1.0 | GK | 26.0 | Jul 1, 2010 | 2020 | 6'4 | 187lbs | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 22.0 | 16.0 | 26.0 | 27.0 | 23.0 | 13.0 | 22.0 | 20.0 | 46.0 | 26.0 | 59.0 | 57.0 | 49.0 | 64.0 | 49.0 | 18.0 | 60.0 | 14.0 | 70.0 | 16.0 | 37.0 | 13.0 | 12.0 | 50.0 | 42.0 | 53.0 | 11.0 | 20.0 | 20.0 | 73.0 | 69.0 | 75.0 | 70.0 | 74.0 | 58000000.0 |
1
2
3
4
5
# 포지션이 GK인 선수는 다른 포지션에 대한 능력치를 부여할 필요가 없기에 NaN으로 채워져 있는 것으로 가정
# NaN값을 측정할 수 없다는 의미의 -1로 교체
# 다른 데이터 분석시 -값이 존재한다면 -1로 쓰는 것은 의미가 없다. (현재 데이터는 모두 양수값이 기에 사용)
gunners = gunners.fillna(-1)
1
2
3
4
# 결칙치가 잘 대체되었는지 확인
#gunners[gunners['Position']=='GK'] 로 결측치 있던 부분만 재확인
gunners.info()
<class 'pandas.core.frame.DataFrame'> Int64Index: 33 entries, 33 to 16216 Data columns (total 81 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Unnamed: 0 33 non-null int64 1 ID 33 non-null int64 2 Name 33 non-null object 3 Age 33 non-null int64 4 Nationality 33 non-null object 5 Overall 33 non-null float64 6 Potential 33 non-null float64 7 Club 33 non-null object 8 Value 33 non-null float64 9 Wage 33 non-null float64 10 Preferred Foot 33 non-null object 11 International Reputation 33 non-null float64 12 Weak Foot 33 non-null float64 13 Skill Moves 33 non-null float64 14 Position 33 non-null object 15 Jersey Number 33 non-null float64 16 Joined 33 non-null object 17 Contract Valid Until 33 non-null object 18 Height 33 non-null object 19 Weight 33 non-null object 20 LS 33 non-null object 21 ST 33 non-null object 22 RS 33 non-null object 23 LW 33 non-null object 24 LF 33 non-null object 25 CF 33 non-null object 26 RF 33 non-null object 27 RW 33 non-null object 28 LAM 33 non-null object 29 CAM 33 non-null object 30 RAM 33 non-null object 31 LM 33 non-null object 32 LCM 33 non-null object 33 CM 33 non-null object 34 RCM 33 non-null object 35 RM 33 non-null object 36 LWB 33 non-null object 37 LDM 33 non-null object 38 CDM 33 non-null object 39 RDM 33 non-null object 40 RWB 33 non-null object 41 LB 33 non-null object 42 LCB 33 non-null object 43 CB 33 non-null object 44 RCB 33 non-null object 45 RB 33 non-null object 46 Crossing 33 non-null float64 47 Finishing 33 non-null float64 48 HeadingAccuracy 33 non-null float64 49 ShortPassing 33 non-null float64 50 Volleys 33 non-null float64 51 Dribbling 33 non-null float64 52 Curve 33 non-null float64 53 FKAccuracy 33 non-null float64 54 LongPassing 33 non-null float64 55 BallControl 33 non-null float64 56 Acceleration 33 non-null float64 57 SprintSpeed 33 non-null float64 58 Agility 33 non-null float64 59 Reactions 33 non-null float64 60 Balance 33 non-null float64 61 ShotPower 33 non-null float64 62 Jumping 33 non-null float64 63 Stamina 33 non-null float64 64 Strength 33 non-null float64 65 LongShots 33 non-null float64 66 Aggression 33 non-null float64 67 Interceptions 33 non-null float64 68 Positioning 33 non-null float64 69 Vision 33 non-null float64 70 Penalties 33 non-null float64 71 Composure 33 non-null float64 72 Marking 33 non-null float64 73 StandingTackle 33 non-null float64 74 SlidingTackle 33 non-null float64 75 GKDiving 33 non-null float64 76 GKHandling 33 non-null float64 77 GKKicking 33 non-null float64 78 GKPositioning 33 non-null float64 79 GKReflexes 33 non-null float64 80 Release Clause 33 non-null float64 dtypes: float64(43), int64(3), object(35) memory usage: 22.4+ KB
Arsenal F.C는 어떤 포지션을 보강해야 할까?
a. 전처리
1
2
3
4
# Chelsea F.C.선수와 능력치 비교를 하기 위해 추가로 Chelsea 선수들의 데이터가 담긴 테이블 생성
blues = data[data['Club']== 'Chelsea']
blues.info()
<class 'pandas.core.frame.DataFrame'> Int64Index: 33 entries, 5 to 16806 Data columns (total 81 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Unnamed: 0 33 non-null int64 1 ID 33 non-null int64 2 Name 33 non-null object 3 Age 33 non-null int64 4 Nationality 33 non-null object 5 Overall 33 non-null float64 6 Potential 33 non-null float64 7 Club 33 non-null object 8 Value 33 non-null float64 9 Wage 33 non-null float64 10 Preferred Foot 33 non-null object 11 International Reputation 33 non-null float64 12 Weak Foot 33 non-null float64 13 Skill Moves 33 non-null float64 14 Position 33 non-null object 15 Jersey Number 33 non-null float64 16 Joined 32 non-null object 17 Contract Valid Until 33 non-null object 18 Height 33 non-null object 19 Weight 33 non-null object 20 LS 29 non-null object 21 ST 29 non-null object 22 RS 29 non-null object 23 LW 29 non-null object 24 LF 29 non-null object 25 CF 29 non-null object 26 RF 29 non-null object 27 RW 29 non-null object 28 LAM 29 non-null object 29 CAM 29 non-null object 30 RAM 29 non-null object 31 LM 29 non-null object 32 LCM 29 non-null object 33 CM 29 non-null object 34 RCM 29 non-null object 35 RM 29 non-null object 36 LWB 29 non-null object 37 LDM 29 non-null object 38 CDM 29 non-null object 39 RDM 29 non-null object 40 RWB 29 non-null object 41 LB 29 non-null object 42 LCB 29 non-null object 43 CB 29 non-null object 44 RCB 29 non-null object 45 RB 29 non-null object 46 Crossing 33 non-null float64 47 Finishing 33 non-null float64 48 HeadingAccuracy 33 non-null float64 49 ShortPassing 33 non-null float64 50 Volleys 33 non-null float64 51 Dribbling 33 non-null float64 52 Curve 33 non-null float64 53 FKAccuracy 33 non-null float64 54 LongPassing 33 non-null float64 55 BallControl 33 non-null float64 56 Acceleration 33 non-null float64 57 SprintSpeed 33 non-null float64 58 Agility 33 non-null float64 59 Reactions 33 non-null float64 60 Balance 33 non-null float64 61 ShotPower 33 non-null float64 62 Jumping 33 non-null float64 63 Stamina 33 non-null float64 64 Strength 33 non-null float64 65 LongShots 33 non-null float64 66 Aggression 33 non-null float64 67 Interceptions 33 non-null float64 68 Positioning 33 non-null float64 69 Vision 33 non-null float64 70 Penalties 33 non-null float64 71 Composure 33 non-null float64 72 Marking 33 non-null float64 73 StandingTackle 33 non-null float64 74 SlidingTackle 33 non-null float64 75 GKDiving 33 non-null float64 76 GKHandling 33 non-null float64 77 GKKicking 33 non-null float64 78 GKPositioning 33 non-null float64 79 GKReflexes 33 non-null float64 80 Release Clause 32 non-null float64 dtypes: float64(43), int64(3), object(35) memory usage: 21.1+ KB
1
2
3
# 결측치 확인
blues[blues.isnull()['LS']]
Unnamed: 0 | ID | Name | Age | Nationality | Overall | Potential | Club | Value | Wage | Preferred Foot | International Reputation | Weak Foot | Skill Moves | Position | Jersey Number | Joined | Contract Valid Until | Height | Weight | LS | ST | RS | LW | LF | CF | RF | RW | LAM | CAM | RAM | LM | LCM | CM | RCM | RM | LWB | LDM | CDM | RDM | RWB | LB | LCB | CB | RCB | RB | Crossing | Finishing | HeadingAccuracy | ShortPassing | Volleys | Dribbling | Curve | FKAccuracy | LongPassing | BallControl | Acceleration | SprintSpeed | Agility | Reactions | Balance | ShotPower | Jumping | Stamina | Strength | LongShots | Aggression | Interceptions | Positioning | Vision | Penalties | Composure | Marking | StandingTackle | SlidingTackle | GKDiving | GKHandling | GKKicking | GKPositioning | GKReflexes | Release Clause | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
177 | 177 | 206585 | Kepa | 23 | Spain | 83.0 | 91.0 | Chelsea | 285000000.0 | 84000.0 | Right | 1.0 | 4.0 | 1.0 | GK | 13.0 | Aug 8, 2018 | 2025 | 6'1 | 187lbs | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 25.0 | 11.0 | 17.0 | 32.0 | 18.0 | 10.0 | 25.0 | 19.0 | 36.0 | 16.0 | 34.0 | 33.0 | 41.0 | 79.0 | 39.0 | 25.0 | 71.0 | 37.0 | 51.0 | 14.0 | 18.0 | 21.0 | 15.0 | 55.0 | 24.0 | 63.0 | 19.0 | 18.0 | 16.0 | 84.0 | 80.0 | 76.0 | 80.0 | 84.0 | 584000000.0 |
1287 | 1287 | 139062 | W. Caballero | 36 | Argentina | 76.0 | 76.0 | Chelsea | 1000000.0 | 39000.0 | Right | 2.0 | 3.0 | 1.0 | GK | 13.0 | Jul 1, 2017 | 2019 | 6'1 | 179lbs | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 12.0 | 11.0 | 22.0 | 33.0 | 13.0 | 12.0 | 23.0 | 11.0 | 48.0 | 30.0 | 43.0 | 46.0 | 39.0 | 73.0 | 55.0 | 23.0 | 70.0 | 37.0 | 69.0 | 14.0 | 30.0 | 19.0 | 7.0 | 47.0 | 16.0 | 57.0 | 14.0 | 11.0 | 12.0 | 75.0 | 72.0 | 71.0 | 77.0 | 76.0 | 19000000.0 |
3937 | 3937 | 101880 | R. Green | 38 | England | 72.0 | 72.0 | Chelsea | 210000.0 | 28000.0 | Right | 2.0 | 3.0 | 1.0 | GK | 31.0 | Jul 26, 2018 | 2019 | 6'2 | 203lbs | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 19.0 | 12.0 | 15.0 | 26.0 | 12.0 | 14.0 | 16.0 | 13.0 | 14.0 | 15.0 | 46.0 | 32.0 | 47.0 | 70.0 | 40.0 | 22.0 | 68.0 | 26.0 | 59.0 | 11.0 | 26.0 | 20.0 | 13.0 | 58.0 | 21.0 | 49.0 | 14.0 | 12.0 | 11.0 | 73.0 | 70.0 | 60.0 | 72.0 | 74.0 | 389000.0 |
16806 | 16806 | 238186 | M. Bulka | 18 | Poland | 56.0 | 74.0 | Chelsea | 150000.0 | 2000.0 | Right | 1.0 | 2.0 | 1.0 | GK | 59.0 | Oct 4, 2016 | 2019 | 6'6 | 198lbs | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 12.0 | 8.0 | 10.0 | 28.0 | 5.0 | 7.0 | 13.0 | 14.0 | 27.0 | 13.0 | 28.0 | 25.0 | 42.0 | 49.0 | 28.0 | 22.0 | 43.0 | 20.0 | 70.0 | 7.0 | 25.0 | 11.0 | 8.0 | 38.0 | 18.0 | 42.0 | 12.0 | 10.0 | 14.0 | 57.0 | 54.0 | 56.0 | 52.0 | 59.0 | 371000.0 |
1
2
3
4
# Arsenal과 마찬가지로 GK 포지션의 선수들에서 결측치가 발생 동일한 방식으로 -1을 입력하여 해결
blues = blues.fillna(-1)
blues.info()
<class 'pandas.core.frame.DataFrame'> Int64Index: 33 entries, 5 to 16806 Data columns (total 81 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Unnamed: 0 33 non-null int64 1 ID 33 non-null int64 2 Name 33 non-null object 3 Age 33 non-null int64 4 Nationality 33 non-null object 5 Overall 33 non-null float64 6 Potential 33 non-null float64 7 Club 33 non-null object 8 Value 33 non-null float64 9 Wage 33 non-null float64 10 Preferred Foot 33 non-null object 11 International Reputation 33 non-null float64 12 Weak Foot 33 non-null float64 13 Skill Moves 33 non-null float64 14 Position 33 non-null object 15 Jersey Number 33 non-null float64 16 Joined 33 non-null object 17 Contract Valid Until 33 non-null object 18 Height 33 non-null object 19 Weight 33 non-null object 20 LS 33 non-null object 21 ST 33 non-null object 22 RS 33 non-null object 23 LW 33 non-null object 24 LF 33 non-null object 25 CF 33 non-null object 26 RF 33 non-null object 27 RW 33 non-null object 28 LAM 33 non-null object 29 CAM 33 non-null object 30 RAM 33 non-null object 31 LM 33 non-null object 32 LCM 33 non-null object 33 CM 33 non-null object 34 RCM 33 non-null object 35 RM 33 non-null object 36 LWB 33 non-null object 37 LDM 33 non-null object 38 CDM 33 non-null object 39 RDM 33 non-null object 40 RWB 33 non-null object 41 LB 33 non-null object 42 LCB 33 non-null object 43 CB 33 non-null object 44 RCB 33 non-null object 45 RB 33 non-null object 46 Crossing 33 non-null float64 47 Finishing 33 non-null float64 48 HeadingAccuracy 33 non-null float64 49 ShortPassing 33 non-null float64 50 Volleys 33 non-null float64 51 Dribbling 33 non-null float64 52 Curve 33 non-null float64 53 FKAccuracy 33 non-null float64 54 LongPassing 33 non-null float64 55 BallControl 33 non-null float64 56 Acceleration 33 non-null float64 57 SprintSpeed 33 non-null float64 58 Agility 33 non-null float64 59 Reactions 33 non-null float64 60 Balance 33 non-null float64 61 ShotPower 33 non-null float64 62 Jumping 33 non-null float64 63 Stamina 33 non-null float64 64 Strength 33 non-null float64 65 LongShots 33 non-null float64 66 Aggression 33 non-null float64 67 Interceptions 33 non-null float64 68 Positioning 33 non-null float64 69 Vision 33 non-null float64 70 Penalties 33 non-null float64 71 Composure 33 non-null float64 72 Marking 33 non-null float64 73 StandingTackle 33 non-null float64 74 SlidingTackle 33 non-null float64 75 GKDiving 33 non-null float64 76 GKHandling 33 non-null float64 77 GKKicking 33 non-null float64 78 GKPositioning 33 non-null float64 79 GKReflexes 33 non-null float64 80 Release Clause 33 non-null float64 dtypes: float64(43), int64(3), object(35) memory usage: 21.1+ KB
1
data.Position.unique()
array(['RF', 'ST', 'LW', 'GK', 'RCM', 'LF', 'RS', 'RCB', 'LCM', 'CB', 'LDM', 'CAM', 'CDM', 'LS', 'LCB', 'RM', 'LAM', 'LB', 'RDM', 'RW', 'LM', 'CM', 'RB', 'RAM', 'CF', 'RWB', 'LWB', nan], dtype=object)
주전선수 비교를 위하여 Arsenal 과 Chelsea의 주전을 선정
-
기본 전술포메이션은 4-4-2 (공격수 - 미드필더 - 수비수) 로 통일 (GK는 포메이션명에서 제외 - 굳이 쓰자면 4-4-2-1)
-
즉, GK : 1명, CB : 4명 MF : 4명 ST : 2명을 선발
-
선발의 기준은 현재능력치
-
GK 리스트 = GK
-
CB 리스트 = CB, LCB, RCB, RB, LB
-
MF 리스트 = RCM, LCM, RDM, LDM, CDM, CM, LM, RM, CAM
-
ST 리스트 = ST, LW, RW, LS, RS
1
2
3
4
5
# 각 포지션 별 리스트 작성
st_list = ['ST', 'LW', 'RW', 'LS','RS','LF','RF','CF']
mf_list = ['RCM', 'LCM', 'RDM','LDM', 'CDM', 'CM','LM', 'RM', 'CAM', 'LAM','RAM']
cb_list = ['CB', 'LCB', 'RCB', 'RB', 'LB', 'LWB','RWB']
gk_list = ['GK']
아스널 라인업 선발
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 각 포지션별 남은 자리 숫자를 입력
st_num = 2
mf_num = 4
cb_num = 4
gk_num = 1
lineup=[]
for index in gunners.index:
# gk 포지션 선발
if gunners['Position'][index] in gk_list: # 포지션이 gk인 선수들 중에서
if gk_num != 0: # gk 포지션에 남은 자리가 0이 아니라면 (= 있다면)
lineup.append(gunners['ID'][index]) # 해당 선수의 ID를 lineup에 입력하고
gk_num -= 1 # gk_num (선수자리)의 값을 -1 해라
# st 포지션 선발
elif gunners['Position'][index] in st_list: # 포지션이 st인 선수들 중에서
if st_num != 0: # st 포지션에 남은 자리가 0이 아니라면( = 있다면)
lineup.append(gunners['ID'][index]) # 해당 선수의 ID를 lineup에 입력하고
st_num -= 1 # st_num(선수 자리)의 값을 -1 해라
gunners['Position'][index] = 'ST' #포지션은 ST 로 통일
# mf포지션 선발
elif gunners['Position'][index] in mf_list: # 포지션이 mf인 선수들 중에서
if mf_num != 0: # mf 포지션에 남은 자리가 0이 아니라면( = 있다면)
lineup.append(gunners['ID'][index]) # 해당 선수의 ID를 lineup에 입력하고
mf_num -= 1 # mf_num(선수 자리)의 값을 -1 해라
gunners['Position'][index] = 'MF' #포지션은 MF 로 통일
# cb 포지션 선발
else:
if cb_num != 0: # cb 포지션에 남은 자리가 0이 아니라면( = 있다면)
lineup.append(gunners['ID'][index]) # 해당 선수의 ID를 lineup에 입력하고
cb_num -= 1 # cb_num(선수 자리)의 값을 -1 해라
gunners['Position'][index] = 'CB' #포지션은 CB 로 통일
1
2
gunners_lineup = gunners[gunners['ID'].isin(lineup)]
gunners_lineup
Unnamed: 0 | ID | Name | Age | Nationality | Overall | Potential | Club | Value | Wage | Preferred Foot | International Reputation | Weak Foot | Skill Moves | Position | Jersey Number | Joined | Contract Valid Until | Height | Weight | LS | ST | RS | LW | LF | CF | RF | RW | LAM | CAM | RAM | LM | LCM | CM | RCM | RM | LWB | LDM | CDM | RDM | RWB | LB | LCB | CB | RCB | RB | Crossing | Finishing | HeadingAccuracy | ShortPassing | Volleys | Dribbling | Curve | FKAccuracy | LongPassing | BallControl | Acceleration | SprintSpeed | Agility | Reactions | Balance | ShotPower | Jumping | Stamina | Strength | LongShots | Aggression | Interceptions | Positioning | Vision | Penalties | Composure | Marking | StandingTackle | SlidingTackle | GKDiving | GKHandling | GKKicking | GKPositioning | GKReflexes | Release Clause | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
33 | 33 | 188567 | P. Aubameyang | 29 | Gabon | 88.0 | 88.0 | Arsenal | 59000000.0 | 265000.0 | Right | 3.0 | 4.0 | 4.0 | ST | 14.0 | Jan 31, 2018 | 2021 | 6'2 | 176lbs | 84+3 | 84+3 | 84+3 | 83+3 | 83+3 | 83+3 | 83+3 | 83+3 | 81+3 | 81+3 | 81+3 | 81+3 | 73+3 | 73+3 | 73+3 | 81+3 | 64+3 | 58+3 | 58+3 | 58+3 | 64+3 | 61+3 | 52+3 | 52+3 | 52+3 | 61+3 | 77.0 | 88.0 | 79.0 | 77.0 | 86.0 | 79.0 | 80.0 | 74.0 | 64.0 | 82.0 | 93.0 | 95.0 | 76.0 | 87.0 | 70.0 | 82.0 | 79.0 | 76.0 | 76.0 | 79.0 | 43.0 | 48.0 | 90.0 | 77.0 | 76.0 | 86.0 | 27.0 | 25.0 | 36.0 | 6.0 | 9.0 | 15.0 | 9.0 | 9.0 | 1.121000e+09 |
74 | 74 | 176635 | M. Özil | 29 | Germany | 86.0 | 86.0 | Arsenal | 435000000.0 | 190000.0 | Left | 4.0 | 2.0 | 4.0 | MF | 10.0 | Sep 2, 2013 | 2021 | 5'11 | 168lbs | 75+3 | 75+3 | 75+3 | 82+3 | 81+3 | 81+3 | 81+3 | 82+3 | 84+3 | 84+3 | 84+3 | 82+3 | 78+3 | 78+3 | 78+3 | 82+3 | 57+3 | 56+3 | 56+3 | 56+3 | 57+3 | 52+3 | 40+3 | 40+3 | 40+3 | 52+3 | 83.0 | 73.0 | 54.0 | 89.0 | 80.0 | 84.0 | 84.0 | 77.0 | 82.0 | 90.0 | 72.0 | 69.0 | 79.0 | 84.0 | 70.0 | 70.0 | 48.0 | 69.0 | 57.0 | 75.0 | 48.0 | 24.0 | 83.0 | 91.0 | 67.0 | 82.0 | 24.0 | 16.0 | 19.0 | 6.0 | 14.0 | 10.0 | 6.0 | 14.0 | 8.270000e+08 |
87 | 87 | 193301 | A. Lacazette | 27 | France | 85.0 | 86.0 | Arsenal | 45000000.0 | 180000.0 | Right | 3.0 | 4.0 | 4.0 | ST | 9.0 | Jul 5, 2017 | 2022 | 5'9 | 161lbs | 82+3 | 82+3 | 82+3 | 81+3 | 83+3 | 83+3 | 83+3 | 81+3 | 81+3 | 81+3 | 81+3 | 79+3 | 74+3 | 74+3 | 74+3 | 79+3 | 62+3 | 60+3 | 60+3 | 60+3 | 62+3 | 59+3 | 54+3 | 54+3 | 54+3 | 59+3 | 64.0 | 88.0 | 73.0 | 80.0 | 81.0 | 85.0 | 74.0 | 71.0 | 59.0 | 83.0 | 81.0 | 84.0 | 85.0 | 85.0 | 85.0 | 83.0 | 76.0 | 79.0 | 73.0 | 75.0 | 70.0 | 42.0 | 86.0 | 76.0 | 84.0 | 85.0 | 29.0 | 42.0 | 30.0 | 11.0 | 6.0 | 9.0 | 5.0 | 6.0 | 8.890000e+08 |
131 | 131 | 192563 | B. Leno | 26 | Germany | 84.0 | 87.0 | Arsenal | 27000000.0 | 115000.0 | Right | 3.0 | 4.0 | 1.0 | GK | 12.0 | Jul 1, 2018 | 2023 | 6'3 | 183lbs | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 9.0 | 9.0 | 13.0 | 45.0 | 10.0 | 16.0 | 9.0 | 8.0 | 40.0 | 22.0 | 46.0 | 52.0 | 52.0 | 80.0 | 44.0 | 23.0 | 73.0 | 43.0 | 68.0 | 14.0 | 28.0 | 22.0 | 7.0 | 54.0 | 23.0 | 66.0 | 27.0 | 15.0 | 18.0 | 84.0 | 82.0 | 75.0 | 85.0 | 82.0 | 5.330000e+08 |
146 | 146 | 172879 | Sokratis | 30 | Greece | 84.0 | 84.0 | Arsenal | 23000000.0 | 140000.0 | Right | 3.0 | 2.0 | 2.0 | CB | 19.0 | Jul 2, 2018 | 2021 | 6'1 | 187lbs | 62+3 | 62+3 | 62+3 | 56+3 | 58+3 | 58+3 | 58+3 | 56+3 | 56+3 | 56+3 | 56+3 | 57+3 | 59+3 | 59+3 | 59+3 | 57+3 | 70+3 | 71+3 | 71+3 | 71+3 | 70+3 | 73+3 | 81+3 | 81+3 | 81+3 | 73+3 | 47.0 | 44.0 | 85.0 | 60.0 | 46.0 | 58.0 | 29.0 | 35.0 | 51.0 | 58.0 | 64.0 | 73.0 | 60.0 | 81.0 | 64.0 | 77.0 | 86.0 | 69.0 | 86.0 | 48.0 | 88.0 | 77.0 | 49.0 | 45.0 | 24.0 | 82.0 | 85.0 | 87.0 | 85.0 | 6.0 | 8.0 | 5.0 | 12.0 | 5.0 | 4.370000e+08 |
199 | 199 | 192883 | H. Mkhitaryan | 29 | Armenia | 83.0 | 83.0 | Arsenal | 255000000.0 | 145000.0 | Right | 3.0 | 5.0 | 4.0 | MF | 7.0 | Jan 22, 2018 | 2021 | 5'10 | 165lbs | 76+3 | 76+3 | 76+3 | 81+3 | 80+3 | 80+3 | 80+3 | 81+3 | 81+3 | 81+3 | 81+3 | 80+3 | 78+3 | 78+3 | 78+3 | 80+3 | 70+3 | 68+3 | 68+3 | 68+3 | 70+3 | 67+3 | 59+3 | 59+3 | 59+3 | 67+3 | 77.0 | 74.0 | 53.0 | 80.0 | 81.0 | 84.0 | 83.0 | 64.0 | 71.0 | 86.0 | 84.0 | 78.0 | 87.0 | 79.0 | 85.0 | 85.0 | 69.0 | 83.0 | 62.0 | 73.0 | 69.0 | 64.0 | 82.0 | 84.0 | 72.0 | 76.0 | 41.0 | 53.0 | 55.0 | 5.0 | 11.0 | 14.0 | 5.0 | 7.0 | 4.850000e+08 |
235 | 235 | 223959 | L. Torreira | 22 | Uruguay | 82.0 | 87.0 | Arsenal | 25000000.0 | 98000.0 | Right | 2.0 | 3.0 | 3.0 | MF | 14.0 | Jul 12, 2018 | 2023 | 5'6 | 141lbs | 68+2 | 68+2 | 68+2 | 74+2 | 73+2 | 73+2 | 73+2 | 74+2 | 75+2 | 75+2 | 75+2 | 75+2 | 78+2 | 78+2 | 78+2 | 75+2 | 80+2 | 81+2 | 81+2 | 81+2 | 80+2 | 79+2 | 77+2 | 77+2 | 77+2 | 79+2 | 74.0 | 50.0 | 55.0 | 83.0 | 65.0 | 78.0 | 66.0 | 76.0 | 77.0 | 81.0 | 81.0 | 74.0 | 83.0 | 79.0 | 93.0 | 78.0 | 52.0 | 85.0 | 66.0 | 74.0 | 85.0 | 87.0 | 65.0 | 74.0 | 48.0 | 78.0 | 84.0 | 84.0 | 75.0 | 5.0 | 5.0 | 13.0 | 7.0 | 9.0 | 4.940000e+08 |
281 | 281 | 192227 | S. Mustafi | 26 | Germany | 82.0 | 84.0 | Arsenal | 225000000.0 | 115000.0 | Right | 3.0 | 3.0 | 2.0 | CB | 20.0 | Aug 30, 2016 | 2021 | 6'0 | 181lbs | 64+3 | 64+3 | 64+3 | 61+3 | 62+3 | 62+3 | 62+3 | 61+3 | 63+3 | 63+3 | 63+3 | 62+3 | 67+3 | 67+3 | 67+3 | 62+3 | 72+3 | 76+3 | 76+3 | 76+3 | 72+3 | 74+3 | 80+3 | 80+3 | 80+3 | 74+3 | 53.0 | 58.0 | 81.0 | 77.0 | 51.0 | 53.0 | 55.0 | 47.0 | 69.0 | 70.0 | 58.0 | 65.0 | 63.0 | 82.0 | 67.0 | 66.0 | 83.0 | 68.0 | 78.0 | 52.0 | 82.0 | 82.0 | 50.0 | 55.0 | 54.0 | 73.0 | 80.0 | 82.0 | 82.0 | 11.0 | 9.0 | 15.0 | 10.0 | 6.0 | 4.440000e+08 |
289 | 289 | 186561 | A. Ramsey | 27 | Wales | 82.0 | 83.0 | Arsenal | 25000000.0 | 130000.0 | Right | 3.0 | 3.0 | 3.0 | MF | 10.0 | Jun 13, 2008 | 2019 | 6'0 | 168lbs | 75+3 | 75+3 | 75+3 | 77+3 | 78+3 | 78+3 | 78+3 | 77+3 | 79+3 | 79+3 | 79+3 | 78+3 | 80+3 | 80+3 | 80+3 | 78+3 | 75+3 | 75+3 | 75+3 | 75+3 | 75+3 | 72+3 | 69+3 | 69+3 | 69+3 | 72+3 | 75.0 | 74.0 | 58.0 | 84.0 | 79.0 | 81.0 | 70.0 | 66.0 | 80.0 | 82.0 | 64.0 | 69.0 | 73.0 | 81.0 | 74.0 | 81.0 | 66.0 | 89.0 | 67.0 | 74.0 | 73.0 | 69.0 | 84.0 | 79.0 | 75.0 | 81.0 | 66.0 | 70.0 | 67.0 | 6.0 | 11.0 | 5.0 | 10.0 | 8.0 | 4.940000e+08 |
311 | 311 | 165229 | L. Koscielny | 32 | France | 82.0 | 82.0 | Arsenal | 125000000.0 | 115000.0 | Right | 3.0 | 3.0 | 2.0 | CB | 6.0 | Jul 7, 2010 | 2020 | 6'1 | 165lbs | 57+3 | 57+3 | 57+3 | 58+3 | 58+3 | 58+3 | 58+3 | 58+3 | 60+3 | 60+3 | 60+3 | 60+3 | 65+3 | 65+3 | 65+3 | 60+3 | 71+3 | 75+3 | 75+3 | 75+3 | 71+3 | 74+3 | 80+3 | 80+3 | 80+3 | 74+3 | 52.0 | 32.0 | 80.0 | 76.0 | 35.0 | 62.0 | 22.0 | 49.0 | 69.0 | 66.0 | 64.0 | 66.0 | 65.0 | 76.0 | 61.0 | 54.0 | 78.0 | 62.0 | 75.0 | 47.0 | 86.0 | 84.0 | 41.0 | 56.0 | 51.0 | 75.0 | 80.0 | 84.0 | 83.0 | 13.0 | 11.0 | 9.0 | 11.0 | 7.0 | 2.380000e+08 |
464 | 464 | 203747 | Héctor Bellerín | 23 | Spain | 80.0 | 85.0 | Arsenal | 165000000.0 | 85000.0 | Right | 3.0 | 3.0 | 3.0 | CB | 2.0 | Jul 1, 2014 | 2023 | 5'10 | 163lbs | 65+3 | 65+3 | 65+3 | 73+3 | 70+3 | 70+3 | 70+3 | 73+3 | 71+3 | 71+3 | 71+3 | 75+3 | 71+3 | 71+3 | 71+3 | 75+3 | 79+3 | 74+3 | 74+3 | 74+3 | 79+3 | 79+3 | 73+3 | 73+3 | 73+3 | 79+3 | 76.0 | 52.0 | 60.0 | 76.0 | 41.0 | 75.0 | 63.0 | 50.0 | 59.0 | 78.0 | 94.0 | 91.0 | 82.0 | 78.0 | 77.0 | 52.0 | 63.0 | 84.0 | 58.0 | 43.0 | 72.0 | 77.0 | 67.0 | 66.0 | 62.0 | 70.0 | 75.0 | 78.0 | 80.0 | 8.0 | 14.0 | 14.0 | 13.0 | 12.0 | 3.260000e+08 |
선발된 선수들의 포지션을 4가지 유형으로 분류 한다.
첼시 라인업 선발
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 각 포지션별 남은 자리 숫자를 입력
st_num = 2
mf_num = 4
cb_num = 4
gk_num = 1
lineup=[]
for index in blues.index:
# gk 포지션 선발
if blues['Position'][index] in gk_list: # 포지션이 gk인 선수들 중에서
if gk_num != 0: # gk 포지션에 남은 자리가 0이 아니라면 (= 있다면)
lineup.append(blues['ID'][index]) # 해당 선수의 ID를 lineup에 입력하고
gk_num -= 1 # gk_num (선수자리)의 값을 -1 해라
# st 포지션 선발
elif blues['Position'][index] in st_list: # 포지션이 st인 선수들 중에서
if st_num != 0: # st 포지션에 남은 자리가 0이 아니라면( = 있다면)
lineup.append(blues['ID'][index]) # 해당 선수의 ID를 lineup에 입력하고
st_num -= 1 # st_num(선수 자리)의 값을 -1 해라
blues['Position'][index] = 'ST' #포지션은 ST 로 통일
# mf포지션 선발
elif blues['Position'][index] in mf_list: # 포지션이 mf인 선수들 중에서
if mf_num != 0: # mf 포지션에 남은 자리가 0이 아니라면( = 있다면)
lineup.append(blues['ID'][index]) # 해당 선수의 ID를 lineup에 입력하고
mf_num -= 1 # mf_num(선수 자리)의 값을 -1 해라
blues['Position'][index] = 'MF' #포지션은 MF 로 통일
# cb 포지션 선발
else:
if cb_num != 0: # cb 포지션에 남은 자리가 0이 아니라면( = 있다면)
lineup.append(blues['ID'][index]) # 해당 선수의 ID를 lineup에 입력하고
cb_num -= 1 # cb_num(선수 자리)의 값을 -1 해라
blues['Position'][index] = 'CB' #포지션은 CB 로 통일
1
2
blues_lineup = blues[blues['ID'].isin(lineup)]
blues_lineup
Unnamed: 0 | ID | Name | Age | Nationality | Overall | Potential | Club | Value | Wage | Preferred Foot | International Reputation | Weak Foot | Skill Moves | Position | Jersey Number | Joined | Contract Valid Until | Height | Weight | LS | ST | RS | LW | LF | CF | RF | RW | LAM | CAM | RAM | LM | LCM | CM | RCM | RM | LWB | LDM | CDM | RDM | RWB | LB | LCB | CB | RCB | RB | Crossing | Finishing | HeadingAccuracy | ShortPassing | Volleys | Dribbling | Curve | FKAccuracy | LongPassing | BallControl | Acceleration | SprintSpeed | Agility | Reactions | Balance | ShotPower | Jumping | Stamina | Strength | LongShots | Aggression | Interceptions | Positioning | Vision | Penalties | Composure | Marking | StandingTackle | SlidingTackle | GKDiving | GKHandling | GKKicking | GKPositioning | GKReflexes | Release Clause | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
5 | 5 | 183277 | E. Hazard | 27 | Belgium | 91.0 | 91.0 | Chelsea | 93000000.0 | 340000.0 | Right | 4.0 | 4.0 | 4.0 | ST | 10.0 | Jul 1, 2012 | 2020 | 5'8 | 163lbs | 83+3 | 83+3 | 83+3 | 89+3 | 88+3 | 88+3 | 88+3 | 89+3 | 89+3 | 89+3 | 89+3 | 89+3 | 82+3 | 82+3 | 82+3 | 89+3 | 66+3 | 63+3 | 63+3 | 63+3 | 66+3 | 60+3 | 49+3 | 49+3 | 49+3 | 60+3 | 81.0 | 84.0 | 61.0 | 89.0 | 80.0 | 95.0 | 83.0 | 79.0 | 83.0 | 94.0 | 94.0 | 88.0 | 95.0 | 90.0 | 94.0 | 82.0 | 56.0 | 83.0 | 66.0 | 80.0 | 54.0 | 41.0 | 87.0 | 89.0 | 86.0 | 91.0 | 34.0 | 27.0 | 22.0 | 11.0 | 12.0 | 6.0 | 8.0 | 8.0 | 1.721000e+09 |
14 | 14 | 215914 | N. Kanté | 27 | France | 89.0 | 90.0 | Chelsea | 63000000.0 | 225000.0 | Right | 3.0 | 3.0 | 2.0 | MF | 13.0 | Jul 16, 2016 | 2023 | 5'6 | 159lbs | 72+3 | 72+3 | 72+3 | 77+3 | 77+3 | 77+3 | 77+3 | 77+3 | 79+3 | 79+3 | 79+3 | 79+3 | 82+3 | 82+3 | 82+3 | 79+3 | 85+3 | 87+3 | 87+3 | 87+3 | 85+3 | 84+3 | 83+3 | 83+3 | 83+3 | 84+3 | 68.0 | 65.0 | 54.0 | 86.0 | 56.0 | 79.0 | 49.0 | 49.0 | 81.0 | 80.0 | 82.0 | 78.0 | 82.0 | 93.0 | 92.0 | 71.0 | 77.0 | 96.0 | 76.0 | 69.0 | 90.0 | 92.0 | 71.0 | 79.0 | 54.0 | 85.0 | 90.0 | 91.0 | 85.0 | 15.0 | 12.0 | 10.0 | 7.0 | 10.0 | 1.213000e+09 |
69 | 69 | 184432 | Azpilicueta | 28 | Spain | 86.0 | 86.0 | Chelsea | 35000000.0 | 175000.0 | Right | 3.0 | 3.0 | 2.0 | CB | 14.0 | Aug 24, 2012 | 2022 | 5'10 | 168lbs | 67+3 | 67+3 | 67+3 | 71+3 | 70+3 | 70+3 | 70+3 | 71+3 | 72+3 | 72+3 | 72+3 | 74+3 | 77+3 | 77+3 | 77+3 | 74+3 | 83+3 | 83+3 | 83+3 | 83+3 | 83+3 | 84+3 | 83+3 | 83+3 | 83+3 | 84+3 | 81.0 | 46.0 | 76.0 | 81.0 | 51.0 | 69.0 | 68.0 | 58.0 | 80.0 | 77.0 | 76.0 | 76.0 | 72.0 | 88.0 | 73.0 | 68.0 | 76.0 | 87.0 | 71.0 | 60.0 | 82.0 | 89.0 | 62.0 | 74.0 | 66.0 | 78.0 | 88.0 | 90.0 | 86.0 | 13.0 | 9.0 | 10.0 | 6.0 | 5.0 | 6.480000e+08 |
121 | 121 | 205498 | Jorginho | 26 | Italy | 84.0 | 87.0 | Chelsea | 38000000.0 | 155000.0 | Right | 2.0 | 3.0 | 3.0 | MF | 8.0 | Jul 16, 2018 | 2023 | 5'11 | 148lbs | 70+2 | 70+2 | 70+2 | 77+2 | 76+2 | 76+2 | 76+2 | 77+2 | 80+2 | 80+2 | 80+2 | 79+2 | 82+2 | 82+2 | 82+2 | 79+2 | 77+2 | 79+2 | 79+2 | 79+2 | 77+2 | 75+2 | 72+2 | 72+2 | 72+2 | 75+2 | 75.0 | 57.0 | 56.0 | 89.0 | 71.0 | 82.0 | 75.0 | 76.0 | 87.0 | 85.0 | 75.0 | 69.0 | 80.0 | 83.0 | 73.0 | 71.0 | 58.0 | 79.0 | 66.0 | 62.0 | 79.0 | 78.0 | 72.0 | 87.0 | 84.0 | 79.0 | 63.0 | 78.0 | 70.0 | 14.0 | 7.0 | 13.0 | 14.0 | 8.0 | 7.320000e+08 |
140 | 140 | 180403 | Willian | 29 | Brazil | 84.0 | 84.0 | Chelsea | 305000000.0 | 175000.0 | Right | 3.0 | 4.0 | 4.0 | ST | 22.0 | Aug 28, 2013 | 2020 | 5'9 | 172lbs | 74+3 | 74+3 | 74+3 | 82+3 | 81+3 | 81+3 | 81+3 | 82+3 | 82+3 | 82+3 | 82+3 | 82+3 | 79+3 | 79+3 | 79+3 | 82+3 | 71+3 | 67+3 | 67+3 | 67+3 | 71+3 | 66+3 | 54+3 | 54+3 | 54+3 | 66+3 | 76.0 | 77.0 | 31.0 | 80.0 | 59.0 | 88.0 | 82.0 | 83.0 | 77.0 | 84.0 | 91.0 | 86.0 | 89.0 | 82.0 | 79.0 | 79.0 | 41.0 | 85.0 | 60.0 | 81.0 | 44.0 | 55.0 | 80.0 | 83.0 | 70.0 | 79.0 | 43.0 | 57.0 | 51.0 | 14.0 | 12.0 | 13.0 | 7.0 | 13.0 | 5.640000e+08 |
176 | 176 | 207410 | M. Kovačić | 24 | Croatia | 83.0 | 89.0 | Chelsea | 35000000.0 | 165000.0 | Right | 3.0 | 4.0 | 4.0 | MF | 17.0 | -1 | Jun 30, 2019 | 5'9 | 172lbs | 71+3 | 71+3 | 71+3 | 79+3 | 78+3 | 78+3 | 78+3 | 79+3 | 81+3 | 81+3 | 81+3 | 80+3 | 82+3 | 82+3 | 82+3 | 80+3 | 76+3 | 78+3 | 78+3 | 78+3 | 76+3 | 74+3 | 69+3 | 69+3 | 69+3 | 74+3 | 73.0 | 62.0 | 42.0 | 87.0 | 76.0 | 88.0 | 78.0 | 68.0 | 82.0 | 89.0 | 84.0 | 74.0 | 81.0 | 70.0 | 85.0 | 79.0 | 63.0 | 82.0 | 65.0 | 75.0 | 77.0 | 78.0 | 69.0 | 88.0 | 59.0 | 72.0 | 69.0 | 75.0 | 63.0 | 9.0 | 5.0 | 6.0 | 7.0 | 7.0 | -1.000000e+00 |
177 | 177 | 206585 | Kepa | 23 | Spain | 83.0 | 91.0 | Chelsea | 285000000.0 | 84000.0 | Right | 1.0 | 4.0 | 1.0 | GK | 13.0 | Aug 8, 2018 | 2025 | 6'1 | 187lbs | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 25.0 | 11.0 | 17.0 | 32.0 | 18.0 | 10.0 | 25.0 | 19.0 | 36.0 | 16.0 | 34.0 | 33.0 | 41.0 | 79.0 | 39.0 | 25.0 | 71.0 | 37.0 | 51.0 | 14.0 | 18.0 | 21.0 | 15.0 | 55.0 | 24.0 | 63.0 | 19.0 | 18.0 | 16.0 | 84.0 | 80.0 | 76.0 | 80.0 | 84.0 | 5.840000e+08 |
200 | 200 | 192638 | Marcos Alonso | 27 | Spain | 83.0 | 84.0 | Chelsea | 24000000.0 | 130000.0 | Left | 2.0 | 3.0 | 3.0 | CB | 3.0 | Aug 31, 2016 | 2023 | 6'2 | 192lbs | 78+2 | 78+2 | 78+2 | 77+2 | 78+2 | 78+2 | 78+2 | 77+2 | 77+2 | 77+2 | 77+2 | 79+2 | 79+2 | 79+2 | 79+2 | 79+2 | 81+2 | 80+2 | 80+2 | 80+2 | 81+2 | 81+2 | 79+2 | 79+2 | 79+2 | 81+2 | 85.0 | 68.0 | 83.0 | 84.0 | 70.0 | 79.0 | 85.0 | 86.0 | 73.0 | 83.0 | 69.0 | 76.0 | 64.0 | 84.0 | 58.0 | 84.0 | 71.0 | 90.0 | 76.0 | 77.0 | 75.0 | 79.0 | 79.0 | 69.0 | 64.0 | 76.0 | 79.0 | 82.0 | 79.0 | 9.0 | 7.0 | 13.0 | 9.0 | 12.0 | 4.620000e+08 |
209 | 209 | 179944 | David Luiz | 31 | Brazil | 83.0 | 83.0 | Chelsea | 175000000.0 | 130000.0 | Right | 4.0 | 3.0 | 3.0 | CB | 30.0 | Aug 31, 2016 | 2019 | 6'2 | 190lbs | 68+3 | 68+3 | 68+3 | 67+3 | 67+3 | 67+3 | 67+3 | 67+3 | 69+3 | 69+3 | 69+3 | 68+3 | 73+3 | 73+3 | 73+3 | 68+3 | 74+3 | 78+3 | 78+3 | 78+3 | 74+3 | 75+3 | 80+3 | 80+3 | 80+3 | 75+3 | 68.0 | 55.0 | 81.0 | 77.0 | 63.0 | 66.0 | 70.0 | 76.0 | 77.0 | 79.0 | 59.0 | 62.0 | 69.0 | 75.0 | 56.0 | 79.0 | 78.0 | 66.0 | 79.0 | 73.0 | 85.0 | 85.0 | 54.0 | 69.0 | 75.0 | 77.0 | 79.0 | 83.0 | 82.0 | 11.0 | 12.0 | 10.0 | 7.0 | 14.0 | 3.240000e+08 |
219 | 219 | 162895 | Cesc Fàbregas | 31 | Spain | 83.0 | 83.0 | Chelsea | 22000000.0 | 140000.0 | Right | 4.0 | 3.0 | 3.0 | MF | 4.0 | Jul 1, 2014 | 2019 | 5'10 | 170lbs | 74+3 | 74+3 | 74+3 | 76+3 | 77+3 | 77+3 | 77+3 | 76+3 | 80+3 | 80+3 | 80+3 | 77+3 | 79+3 | 79+3 | 79+3 | 77+3 | 68+3 | 70+3 | 70+3 | 70+3 | 68+3 | 66+3 | 62+3 | 62+3 | 62+3 | 66+3 | 85.0 | 72.0 | 74.0 | 90.0 | 81.0 | 79.0 | 78.0 | 81.0 | 89.0 | 85.0 | 56.0 | 54.0 | 62.0 | 81.0 | 75.0 | 77.0 | 63.0 | 56.0 | 61.0 | 70.0 | 45.0 | 50.0 | 72.0 | 91.0 | 78.0 | 92.0 | 64.0 | 59.0 | 58.0 | 6.0 | 10.0 | 8.0 | 15.0 | 15.0 | 4.070000e+08 |
257 | 257 | 205452 | A. Rüdiger | 25 | Germany | 82.0 | 84.0 | Chelsea | 225000000.0 | 110000.0 | Right | 2.0 | 3.0 | 2.0 | CB | 16.0 | Jul 9, 2017 | 2022 | 6'3 | 187lbs | 58+2 | 58+2 | 58+2 | 59+2 | 58+2 | 58+2 | 58+2 | 59+2 | 60+2 | 60+2 | 60+2 | 62+2 | 65+2 | 65+2 | 65+2 | 62+2 | 74+2 | 76+2 | 76+2 | 76+2 | 74+2 | 76+2 | 81+2 | 81+2 | 81+2 | 76+2 | 68.0 | 27.0 | 80.0 | 75.0 | 34.0 | 59.0 | 35.0 | 56.0 | 72.0 | 69.0 | 67.0 | 78.0 | 59.0 | 82.0 | 50.0 | 70.0 | 73.0 | 60.0 | 82.0 | 41.0 | 88.0 | 80.0 | 33.0 | 57.0 | 40.0 | 72.0 | 82.0 | 85.0 | 82.0 | 14.0 | 15.0 | 10.0 | 12.0 | 8.0 | 4.330000e+08 |
1
2
3
4
5
# 두팀의 주전선수가 모인 데이터를 생성
london = pd.concat([gunners_lineup, blues_lineup])
print(len(london))
london
22
Unnamed: 0 | ID | Name | Age | Nationality | Overall | Potential | Club | Value | Wage | Preferred Foot | International Reputation | Weak Foot | Skill Moves | Position | Jersey Number | Joined | Contract Valid Until | Height | Weight | LS | ST | RS | LW | LF | CF | RF | RW | LAM | CAM | RAM | LM | LCM | CM | RCM | RM | LWB | LDM | CDM | RDM | RWB | LB | LCB | CB | RCB | RB | Crossing | Finishing | HeadingAccuracy | ShortPassing | Volleys | Dribbling | Curve | FKAccuracy | LongPassing | BallControl | Acceleration | SprintSpeed | Agility | Reactions | Balance | ShotPower | Jumping | Stamina | Strength | LongShots | Aggression | Interceptions | Positioning | Vision | Penalties | Composure | Marking | StandingTackle | SlidingTackle | GKDiving | GKHandling | GKKicking | GKPositioning | GKReflexes | Release Clause | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
33 | 33 | 188567 | P. Aubameyang | 29 | Gabon | 88.0 | 88.0 | Arsenal | 59000000.0 | 265000.0 | Right | 3.0 | 4.0 | 4.0 | ST | 14.0 | Jan 31, 2018 | 2021 | 6'2 | 176lbs | 84+3 | 84+3 | 84+3 | 83+3 | 83+3 | 83+3 | 83+3 | 83+3 | 81+3 | 81+3 | 81+3 | 81+3 | 73+3 | 73+3 | 73+3 | 81+3 | 64+3 | 58+3 | 58+3 | 58+3 | 64+3 | 61+3 | 52+3 | 52+3 | 52+3 | 61+3 | 77.0 | 88.0 | 79.0 | 77.0 | 86.0 | 79.0 | 80.0 | 74.0 | 64.0 | 82.0 | 93.0 | 95.0 | 76.0 | 87.0 | 70.0 | 82.0 | 79.0 | 76.0 | 76.0 | 79.0 | 43.0 | 48.0 | 90.0 | 77.0 | 76.0 | 86.0 | 27.0 | 25.0 | 36.0 | 6.0 | 9.0 | 15.0 | 9.0 | 9.0 | 1.121000e+09 |
74 | 74 | 176635 | M. Özil | 29 | Germany | 86.0 | 86.0 | Arsenal | 435000000.0 | 190000.0 | Left | 4.0 | 2.0 | 4.0 | MF | 10.0 | Sep 2, 2013 | 2021 | 5'11 | 168lbs | 75+3 | 75+3 | 75+3 | 82+3 | 81+3 | 81+3 | 81+3 | 82+3 | 84+3 | 84+3 | 84+3 | 82+3 | 78+3 | 78+3 | 78+3 | 82+3 | 57+3 | 56+3 | 56+3 | 56+3 | 57+3 | 52+3 | 40+3 | 40+3 | 40+3 | 52+3 | 83.0 | 73.0 | 54.0 | 89.0 | 80.0 | 84.0 | 84.0 | 77.0 | 82.0 | 90.0 | 72.0 | 69.0 | 79.0 | 84.0 | 70.0 | 70.0 | 48.0 | 69.0 | 57.0 | 75.0 | 48.0 | 24.0 | 83.0 | 91.0 | 67.0 | 82.0 | 24.0 | 16.0 | 19.0 | 6.0 | 14.0 | 10.0 | 6.0 | 14.0 | 8.270000e+08 |
87 | 87 | 193301 | A. Lacazette | 27 | France | 85.0 | 86.0 | Arsenal | 45000000.0 | 180000.0 | Right | 3.0 | 4.0 | 4.0 | ST | 9.0 | Jul 5, 2017 | 2022 | 5'9 | 161lbs | 82+3 | 82+3 | 82+3 | 81+3 | 83+3 | 83+3 | 83+3 | 81+3 | 81+3 | 81+3 | 81+3 | 79+3 | 74+3 | 74+3 | 74+3 | 79+3 | 62+3 | 60+3 | 60+3 | 60+3 | 62+3 | 59+3 | 54+3 | 54+3 | 54+3 | 59+3 | 64.0 | 88.0 | 73.0 | 80.0 | 81.0 | 85.0 | 74.0 | 71.0 | 59.0 | 83.0 | 81.0 | 84.0 | 85.0 | 85.0 | 85.0 | 83.0 | 76.0 | 79.0 | 73.0 | 75.0 | 70.0 | 42.0 | 86.0 | 76.0 | 84.0 | 85.0 | 29.0 | 42.0 | 30.0 | 11.0 | 6.0 | 9.0 | 5.0 | 6.0 | 8.890000e+08 |
131 | 131 | 192563 | B. Leno | 26 | Germany | 84.0 | 87.0 | Arsenal | 27000000.0 | 115000.0 | Right | 3.0 | 4.0 | 1.0 | GK | 12.0 | Jul 1, 2018 | 2023 | 6'3 | 183lbs | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 9.0 | 9.0 | 13.0 | 45.0 | 10.0 | 16.0 | 9.0 | 8.0 | 40.0 | 22.0 | 46.0 | 52.0 | 52.0 | 80.0 | 44.0 | 23.0 | 73.0 | 43.0 | 68.0 | 14.0 | 28.0 | 22.0 | 7.0 | 54.0 | 23.0 | 66.0 | 27.0 | 15.0 | 18.0 | 84.0 | 82.0 | 75.0 | 85.0 | 82.0 | 5.330000e+08 |
146 | 146 | 172879 | Sokratis | 30 | Greece | 84.0 | 84.0 | Arsenal | 23000000.0 | 140000.0 | Right | 3.0 | 2.0 | 2.0 | CB | 19.0 | Jul 2, 2018 | 2021 | 6'1 | 187lbs | 62+3 | 62+3 | 62+3 | 56+3 | 58+3 | 58+3 | 58+3 | 56+3 | 56+3 | 56+3 | 56+3 | 57+3 | 59+3 | 59+3 | 59+3 | 57+3 | 70+3 | 71+3 | 71+3 | 71+3 | 70+3 | 73+3 | 81+3 | 81+3 | 81+3 | 73+3 | 47.0 | 44.0 | 85.0 | 60.0 | 46.0 | 58.0 | 29.0 | 35.0 | 51.0 | 58.0 | 64.0 | 73.0 | 60.0 | 81.0 | 64.0 | 77.0 | 86.0 | 69.0 | 86.0 | 48.0 | 88.0 | 77.0 | 49.0 | 45.0 | 24.0 | 82.0 | 85.0 | 87.0 | 85.0 | 6.0 | 8.0 | 5.0 | 12.0 | 5.0 | 4.370000e+08 |
199 | 199 | 192883 | H. Mkhitaryan | 29 | Armenia | 83.0 | 83.0 | Arsenal | 255000000.0 | 145000.0 | Right | 3.0 | 5.0 | 4.0 | MF | 7.0 | Jan 22, 2018 | 2021 | 5'10 | 165lbs | 76+3 | 76+3 | 76+3 | 81+3 | 80+3 | 80+3 | 80+3 | 81+3 | 81+3 | 81+3 | 81+3 | 80+3 | 78+3 | 78+3 | 78+3 | 80+3 | 70+3 | 68+3 | 68+3 | 68+3 | 70+3 | 67+3 | 59+3 | 59+3 | 59+3 | 67+3 | 77.0 | 74.0 | 53.0 | 80.0 | 81.0 | 84.0 | 83.0 | 64.0 | 71.0 | 86.0 | 84.0 | 78.0 | 87.0 | 79.0 | 85.0 | 85.0 | 69.0 | 83.0 | 62.0 | 73.0 | 69.0 | 64.0 | 82.0 | 84.0 | 72.0 | 76.0 | 41.0 | 53.0 | 55.0 | 5.0 | 11.0 | 14.0 | 5.0 | 7.0 | 4.850000e+08 |
235 | 235 | 223959 | L. Torreira | 22 | Uruguay | 82.0 | 87.0 | Arsenal | 25000000.0 | 98000.0 | Right | 2.0 | 3.0 | 3.0 | MF | 14.0 | Jul 12, 2018 | 2023 | 5'6 | 141lbs | 68+2 | 68+2 | 68+2 | 74+2 | 73+2 | 73+2 | 73+2 | 74+2 | 75+2 | 75+2 | 75+2 | 75+2 | 78+2 | 78+2 | 78+2 | 75+2 | 80+2 | 81+2 | 81+2 | 81+2 | 80+2 | 79+2 | 77+2 | 77+2 | 77+2 | 79+2 | 74.0 | 50.0 | 55.0 | 83.0 | 65.0 | 78.0 | 66.0 | 76.0 | 77.0 | 81.0 | 81.0 | 74.0 | 83.0 | 79.0 | 93.0 | 78.0 | 52.0 | 85.0 | 66.0 | 74.0 | 85.0 | 87.0 | 65.0 | 74.0 | 48.0 | 78.0 | 84.0 | 84.0 | 75.0 | 5.0 | 5.0 | 13.0 | 7.0 | 9.0 | 4.940000e+08 |
281 | 281 | 192227 | S. Mustafi | 26 | Germany | 82.0 | 84.0 | Arsenal | 225000000.0 | 115000.0 | Right | 3.0 | 3.0 | 2.0 | CB | 20.0 | Aug 30, 2016 | 2021 | 6'0 | 181lbs | 64+3 | 64+3 | 64+3 | 61+3 | 62+3 | 62+3 | 62+3 | 61+3 | 63+3 | 63+3 | 63+3 | 62+3 | 67+3 | 67+3 | 67+3 | 62+3 | 72+3 | 76+3 | 76+3 | 76+3 | 72+3 | 74+3 | 80+3 | 80+3 | 80+3 | 74+3 | 53.0 | 58.0 | 81.0 | 77.0 | 51.0 | 53.0 | 55.0 | 47.0 | 69.0 | 70.0 | 58.0 | 65.0 | 63.0 | 82.0 | 67.0 | 66.0 | 83.0 | 68.0 | 78.0 | 52.0 | 82.0 | 82.0 | 50.0 | 55.0 | 54.0 | 73.0 | 80.0 | 82.0 | 82.0 | 11.0 | 9.0 | 15.0 | 10.0 | 6.0 | 4.440000e+08 |
289 | 289 | 186561 | A. Ramsey | 27 | Wales | 82.0 | 83.0 | Arsenal | 25000000.0 | 130000.0 | Right | 3.0 | 3.0 | 3.0 | MF | 10.0 | Jun 13, 2008 | 2019 | 6'0 | 168lbs | 75+3 | 75+3 | 75+3 | 77+3 | 78+3 | 78+3 | 78+3 | 77+3 | 79+3 | 79+3 | 79+3 | 78+3 | 80+3 | 80+3 | 80+3 | 78+3 | 75+3 | 75+3 | 75+3 | 75+3 | 75+3 | 72+3 | 69+3 | 69+3 | 69+3 | 72+3 | 75.0 | 74.0 | 58.0 | 84.0 | 79.0 | 81.0 | 70.0 | 66.0 | 80.0 | 82.0 | 64.0 | 69.0 | 73.0 | 81.0 | 74.0 | 81.0 | 66.0 | 89.0 | 67.0 | 74.0 | 73.0 | 69.0 | 84.0 | 79.0 | 75.0 | 81.0 | 66.0 | 70.0 | 67.0 | 6.0 | 11.0 | 5.0 | 10.0 | 8.0 | 4.940000e+08 |
311 | 311 | 165229 | L. Koscielny | 32 | France | 82.0 | 82.0 | Arsenal | 125000000.0 | 115000.0 | Right | 3.0 | 3.0 | 2.0 | CB | 6.0 | Jul 7, 2010 | 2020 | 6'1 | 165lbs | 57+3 | 57+3 | 57+3 | 58+3 | 58+3 | 58+3 | 58+3 | 58+3 | 60+3 | 60+3 | 60+3 | 60+3 | 65+3 | 65+3 | 65+3 | 60+3 | 71+3 | 75+3 | 75+3 | 75+3 | 71+3 | 74+3 | 80+3 | 80+3 | 80+3 | 74+3 | 52.0 | 32.0 | 80.0 | 76.0 | 35.0 | 62.0 | 22.0 | 49.0 | 69.0 | 66.0 | 64.0 | 66.0 | 65.0 | 76.0 | 61.0 | 54.0 | 78.0 | 62.0 | 75.0 | 47.0 | 86.0 | 84.0 | 41.0 | 56.0 | 51.0 | 75.0 | 80.0 | 84.0 | 83.0 | 13.0 | 11.0 | 9.0 | 11.0 | 7.0 | 2.380000e+08 |
464 | 464 | 203747 | Héctor Bellerín | 23 | Spain | 80.0 | 85.0 | Arsenal | 165000000.0 | 85000.0 | Right | 3.0 | 3.0 | 3.0 | CB | 2.0 | Jul 1, 2014 | 2023 | 5'10 | 163lbs | 65+3 | 65+3 | 65+3 | 73+3 | 70+3 | 70+3 | 70+3 | 73+3 | 71+3 | 71+3 | 71+3 | 75+3 | 71+3 | 71+3 | 71+3 | 75+3 | 79+3 | 74+3 | 74+3 | 74+3 | 79+3 | 79+3 | 73+3 | 73+3 | 73+3 | 79+3 | 76.0 | 52.0 | 60.0 | 76.0 | 41.0 | 75.0 | 63.0 | 50.0 | 59.0 | 78.0 | 94.0 | 91.0 | 82.0 | 78.0 | 77.0 | 52.0 | 63.0 | 84.0 | 58.0 | 43.0 | 72.0 | 77.0 | 67.0 | 66.0 | 62.0 | 70.0 | 75.0 | 78.0 | 80.0 | 8.0 | 14.0 | 14.0 | 13.0 | 12.0 | 3.260000e+08 |
5 | 5 | 183277 | E. Hazard | 27 | Belgium | 91.0 | 91.0 | Chelsea | 93000000.0 | 340000.0 | Right | 4.0 | 4.0 | 4.0 | ST | 10.0 | Jul 1, 2012 | 2020 | 5'8 | 163lbs | 83+3 | 83+3 | 83+3 | 89+3 | 88+3 | 88+3 | 88+3 | 89+3 | 89+3 | 89+3 | 89+3 | 89+3 | 82+3 | 82+3 | 82+3 | 89+3 | 66+3 | 63+3 | 63+3 | 63+3 | 66+3 | 60+3 | 49+3 | 49+3 | 49+3 | 60+3 | 81.0 | 84.0 | 61.0 | 89.0 | 80.0 | 95.0 | 83.0 | 79.0 | 83.0 | 94.0 | 94.0 | 88.0 | 95.0 | 90.0 | 94.0 | 82.0 | 56.0 | 83.0 | 66.0 | 80.0 | 54.0 | 41.0 | 87.0 | 89.0 | 86.0 | 91.0 | 34.0 | 27.0 | 22.0 | 11.0 | 12.0 | 6.0 | 8.0 | 8.0 | 1.721000e+09 |
14 | 14 | 215914 | N. Kanté | 27 | France | 89.0 | 90.0 | Chelsea | 63000000.0 | 225000.0 | Right | 3.0 | 3.0 | 2.0 | MF | 13.0 | Jul 16, 2016 | 2023 | 5'6 | 159lbs | 72+3 | 72+3 | 72+3 | 77+3 | 77+3 | 77+3 | 77+3 | 77+3 | 79+3 | 79+3 | 79+3 | 79+3 | 82+3 | 82+3 | 82+3 | 79+3 | 85+3 | 87+3 | 87+3 | 87+3 | 85+3 | 84+3 | 83+3 | 83+3 | 83+3 | 84+3 | 68.0 | 65.0 | 54.0 | 86.0 | 56.0 | 79.0 | 49.0 | 49.0 | 81.0 | 80.0 | 82.0 | 78.0 | 82.0 | 93.0 | 92.0 | 71.0 | 77.0 | 96.0 | 76.0 | 69.0 | 90.0 | 92.0 | 71.0 | 79.0 | 54.0 | 85.0 | 90.0 | 91.0 | 85.0 | 15.0 | 12.0 | 10.0 | 7.0 | 10.0 | 1.213000e+09 |
69 | 69 | 184432 | Azpilicueta | 28 | Spain | 86.0 | 86.0 | Chelsea | 35000000.0 | 175000.0 | Right | 3.0 | 3.0 | 2.0 | CB | 14.0 | Aug 24, 2012 | 2022 | 5'10 | 168lbs | 67+3 | 67+3 | 67+3 | 71+3 | 70+3 | 70+3 | 70+3 | 71+3 | 72+3 | 72+3 | 72+3 | 74+3 | 77+3 | 77+3 | 77+3 | 74+3 | 83+3 | 83+3 | 83+3 | 83+3 | 83+3 | 84+3 | 83+3 | 83+3 | 83+3 | 84+3 | 81.0 | 46.0 | 76.0 | 81.0 | 51.0 | 69.0 | 68.0 | 58.0 | 80.0 | 77.0 | 76.0 | 76.0 | 72.0 | 88.0 | 73.0 | 68.0 | 76.0 | 87.0 | 71.0 | 60.0 | 82.0 | 89.0 | 62.0 | 74.0 | 66.0 | 78.0 | 88.0 | 90.0 | 86.0 | 13.0 | 9.0 | 10.0 | 6.0 | 5.0 | 6.480000e+08 |
121 | 121 | 205498 | Jorginho | 26 | Italy | 84.0 | 87.0 | Chelsea | 38000000.0 | 155000.0 | Right | 2.0 | 3.0 | 3.0 | MF | 8.0 | Jul 16, 2018 | 2023 | 5'11 | 148lbs | 70+2 | 70+2 | 70+2 | 77+2 | 76+2 | 76+2 | 76+2 | 77+2 | 80+2 | 80+2 | 80+2 | 79+2 | 82+2 | 82+2 | 82+2 | 79+2 | 77+2 | 79+2 | 79+2 | 79+2 | 77+2 | 75+2 | 72+2 | 72+2 | 72+2 | 75+2 | 75.0 | 57.0 | 56.0 | 89.0 | 71.0 | 82.0 | 75.0 | 76.0 | 87.0 | 85.0 | 75.0 | 69.0 | 80.0 | 83.0 | 73.0 | 71.0 | 58.0 | 79.0 | 66.0 | 62.0 | 79.0 | 78.0 | 72.0 | 87.0 | 84.0 | 79.0 | 63.0 | 78.0 | 70.0 | 14.0 | 7.0 | 13.0 | 14.0 | 8.0 | 7.320000e+08 |
140 | 140 | 180403 | Willian | 29 | Brazil | 84.0 | 84.0 | Chelsea | 305000000.0 | 175000.0 | Right | 3.0 | 4.0 | 4.0 | ST | 22.0 | Aug 28, 2013 | 2020 | 5'9 | 172lbs | 74+3 | 74+3 | 74+3 | 82+3 | 81+3 | 81+3 | 81+3 | 82+3 | 82+3 | 82+3 | 82+3 | 82+3 | 79+3 | 79+3 | 79+3 | 82+3 | 71+3 | 67+3 | 67+3 | 67+3 | 71+3 | 66+3 | 54+3 | 54+3 | 54+3 | 66+3 | 76.0 | 77.0 | 31.0 | 80.0 | 59.0 | 88.0 | 82.0 | 83.0 | 77.0 | 84.0 | 91.0 | 86.0 | 89.0 | 82.0 | 79.0 | 79.0 | 41.0 | 85.0 | 60.0 | 81.0 | 44.0 | 55.0 | 80.0 | 83.0 | 70.0 | 79.0 | 43.0 | 57.0 | 51.0 | 14.0 | 12.0 | 13.0 | 7.0 | 13.0 | 5.640000e+08 |
176 | 176 | 207410 | M. Kovačić | 24 | Croatia | 83.0 | 89.0 | Chelsea | 35000000.0 | 165000.0 | Right | 3.0 | 4.0 | 4.0 | MF | 17.0 | -1 | Jun 30, 2019 | 5'9 | 172lbs | 71+3 | 71+3 | 71+3 | 79+3 | 78+3 | 78+3 | 78+3 | 79+3 | 81+3 | 81+3 | 81+3 | 80+3 | 82+3 | 82+3 | 82+3 | 80+3 | 76+3 | 78+3 | 78+3 | 78+3 | 76+3 | 74+3 | 69+3 | 69+3 | 69+3 | 74+3 | 73.0 | 62.0 | 42.0 | 87.0 | 76.0 | 88.0 | 78.0 | 68.0 | 82.0 | 89.0 | 84.0 | 74.0 | 81.0 | 70.0 | 85.0 | 79.0 | 63.0 | 82.0 | 65.0 | 75.0 | 77.0 | 78.0 | 69.0 | 88.0 | 59.0 | 72.0 | 69.0 | 75.0 | 63.0 | 9.0 | 5.0 | 6.0 | 7.0 | 7.0 | -1.000000e+00 |
177 | 177 | 206585 | Kepa | 23 | Spain | 83.0 | 91.0 | Chelsea | 285000000.0 | 84000.0 | Right | 1.0 | 4.0 | 1.0 | GK | 13.0 | Aug 8, 2018 | 2025 | 6'1 | 187lbs | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 25.0 | 11.0 | 17.0 | 32.0 | 18.0 | 10.0 | 25.0 | 19.0 | 36.0 | 16.0 | 34.0 | 33.0 | 41.0 | 79.0 | 39.0 | 25.0 | 71.0 | 37.0 | 51.0 | 14.0 | 18.0 | 21.0 | 15.0 | 55.0 | 24.0 | 63.0 | 19.0 | 18.0 | 16.0 | 84.0 | 80.0 | 76.0 | 80.0 | 84.0 | 5.840000e+08 |
200 | 200 | 192638 | Marcos Alonso | 27 | Spain | 83.0 | 84.0 | Chelsea | 24000000.0 | 130000.0 | Left | 2.0 | 3.0 | 3.0 | CB | 3.0 | Aug 31, 2016 | 2023 | 6'2 | 192lbs | 78+2 | 78+2 | 78+2 | 77+2 | 78+2 | 78+2 | 78+2 | 77+2 | 77+2 | 77+2 | 77+2 | 79+2 | 79+2 | 79+2 | 79+2 | 79+2 | 81+2 | 80+2 | 80+2 | 80+2 | 81+2 | 81+2 | 79+2 | 79+2 | 79+2 | 81+2 | 85.0 | 68.0 | 83.0 | 84.0 | 70.0 | 79.0 | 85.0 | 86.0 | 73.0 | 83.0 | 69.0 | 76.0 | 64.0 | 84.0 | 58.0 | 84.0 | 71.0 | 90.0 | 76.0 | 77.0 | 75.0 | 79.0 | 79.0 | 69.0 | 64.0 | 76.0 | 79.0 | 82.0 | 79.0 | 9.0 | 7.0 | 13.0 | 9.0 | 12.0 | 4.620000e+08 |
209 | 209 | 179944 | David Luiz | 31 | Brazil | 83.0 | 83.0 | Chelsea | 175000000.0 | 130000.0 | Right | 4.0 | 3.0 | 3.0 | CB | 30.0 | Aug 31, 2016 | 2019 | 6'2 | 190lbs | 68+3 | 68+3 | 68+3 | 67+3 | 67+3 | 67+3 | 67+3 | 67+3 | 69+3 | 69+3 | 69+3 | 68+3 | 73+3 | 73+3 | 73+3 | 68+3 | 74+3 | 78+3 | 78+3 | 78+3 | 74+3 | 75+3 | 80+3 | 80+3 | 80+3 | 75+3 | 68.0 | 55.0 | 81.0 | 77.0 | 63.0 | 66.0 | 70.0 | 76.0 | 77.0 | 79.0 | 59.0 | 62.0 | 69.0 | 75.0 | 56.0 | 79.0 | 78.0 | 66.0 | 79.0 | 73.0 | 85.0 | 85.0 | 54.0 | 69.0 | 75.0 | 77.0 | 79.0 | 83.0 | 82.0 | 11.0 | 12.0 | 10.0 | 7.0 | 14.0 | 3.240000e+08 |
219 | 219 | 162895 | Cesc Fàbregas | 31 | Spain | 83.0 | 83.0 | Chelsea | 22000000.0 | 140000.0 | Right | 4.0 | 3.0 | 3.0 | MF | 4.0 | Jul 1, 2014 | 2019 | 5'10 | 170lbs | 74+3 | 74+3 | 74+3 | 76+3 | 77+3 | 77+3 | 77+3 | 76+3 | 80+3 | 80+3 | 80+3 | 77+3 | 79+3 | 79+3 | 79+3 | 77+3 | 68+3 | 70+3 | 70+3 | 70+3 | 68+3 | 66+3 | 62+3 | 62+3 | 62+3 | 66+3 | 85.0 | 72.0 | 74.0 | 90.0 | 81.0 | 79.0 | 78.0 | 81.0 | 89.0 | 85.0 | 56.0 | 54.0 | 62.0 | 81.0 | 75.0 | 77.0 | 63.0 | 56.0 | 61.0 | 70.0 | 45.0 | 50.0 | 72.0 | 91.0 | 78.0 | 92.0 | 64.0 | 59.0 | 58.0 | 6.0 | 10.0 | 8.0 | 15.0 | 15.0 | 4.070000e+08 |
257 | 257 | 205452 | A. Rüdiger | 25 | Germany | 82.0 | 84.0 | Chelsea | 225000000.0 | 110000.0 | Right | 2.0 | 3.0 | 2.0 | CB | 16.0 | Jul 9, 2017 | 2022 | 6'3 | 187lbs | 58+2 | 58+2 | 58+2 | 59+2 | 58+2 | 58+2 | 58+2 | 59+2 | 60+2 | 60+2 | 60+2 | 62+2 | 65+2 | 65+2 | 65+2 | 62+2 | 74+2 | 76+2 | 76+2 | 76+2 | 74+2 | 76+2 | 81+2 | 81+2 | 81+2 | 76+2 | 68.0 | 27.0 | 80.0 | 75.0 | 34.0 | 59.0 | 35.0 | 56.0 | 72.0 | 69.0 | 67.0 | 78.0 | 59.0 | 82.0 | 50.0 | 70.0 | 73.0 | 60.0 | 82.0 | 41.0 | 88.0 | 80.0 | 33.0 | 57.0 | 40.0 | 72.0 | 82.0 | 85.0 | 82.0 | 14.0 | 15.0 | 10.0 | 12.0 | 8.0 | 4.330000e+08 |
b. EDA
- 주전선수 비교
포지션별 선수 능력치 비교
1
2
3
# 박스클폿으로 이상치 확인 및 두 팀의 선수 데이터 비교
sns.boxplot(data=london, x='Position', y='Overall', hue= 'Club')
<AxesSubplot:xlabel='Position', ylabel='Overall'>
1
2
3
4
5
# MF 부분 이상치 확인
london[london['Position'] == 'MF'][['Name','Age','Value','Overall','Position','Club']]
# 전체적인 데이터가 80대에 분포해있고 N. Kanté 선수가 다른 선수들에 비해 능력치가 높아서 인것으로 확인
# 특이사항은 아니므로 그대로 분석 진행
Name | Age | Value | Overall | Position | Club | |
---|---|---|---|---|---|---|
74 | M. Özil | 29 | 435000000.0 | 86.0 | MF | Arsenal |
199 | H. Mkhitaryan | 29 | 255000000.0 | 83.0 | MF | Arsenal |
235 | L. Torreira | 22 | 25000000.0 | 82.0 | MF | Arsenal |
289 | A. Ramsey | 27 | 25000000.0 | 82.0 | MF | Arsenal |
14 | N. Kanté | 27 | 63000000.0 | 89.0 | MF | Chelsea |
121 | Jorginho | 26 | 38000000.0 | 84.0 | MF | Chelsea |
176 | M. Kovačić | 24 | 35000000.0 | 83.0 | MF | Chelsea |
219 | Cesc Fàbregas | 31 | 22000000.0 | 83.0 | MF | Chelsea |
1
2
3
4
london[london['Position'] == 'CB'][['Name','Age','Value','Overall','Position','Club']]
# 전체적인 데이터가 80대에 분포해있고 Azpilicueta 선수가 다른 선수들에 비해 능력치가 높아서 인것으로 확인
# 특이사항은 아니므로 그대로 분석 진행
Name | Age | Value | Overall | Position | Club | |
---|---|---|---|---|---|---|
146 | Sokratis | 30 | 23000000.0 | 84.0 | CB | Arsenal |
281 | S. Mustafi | 26 | 225000000.0 | 82.0 | CB | Arsenal |
311 | L. Koscielny | 32 | 125000000.0 | 82.0 | CB | Arsenal |
464 | Héctor Bellerín | 23 | 165000000.0 | 80.0 | CB | Arsenal |
69 | Azpilicueta | 28 | 35000000.0 | 86.0 | CB | Chelsea |
200 | Marcos Alonso | 27 | 24000000.0 | 83.0 | CB | Chelsea |
209 | David Luiz | 31 | 175000000.0 | 83.0 | CB | Chelsea |
257 | A. Rüdiger | 25 | 225000000.0 | 82.0 | CB | Chelsea |
두 팀을 비교해봤을때 아스널이 첼시에 비해 중원(미드필드)라인과 수비라인에서 다소 부족한 상태임을 알 수 있음
선수의 몸값 대비 능력치로 비교
1
sns.boxplot(data=london, x='Position', y='Value', hue= 'Club')
<AxesSubplot:xlabel='Position', ylabel='Value'>
1
london[london['Position'] == 'ST'][['Name','Age','Value','Overall','Position','Club']]
Name | Age | Value | Overall | Position | Club | |
---|---|---|---|---|---|---|
33 | P. Aubameyang | 29 | 59000000.0 | 88.0 | ST | Arsenal |
87 | A. Lacazette | 27 | 45000000.0 | 85.0 | ST | Arsenal |
5 | E. Hazard | 27 | 93000000.0 | 91.0 | ST | Chelsea |
140 | Willian | 29 | 305000000.0 | 84.0 | ST | Chelsea |
1
london[london['Position'] == 'CB'][['Name','Age','Value','Overall','Position','Club']]
Name | Age | Value | Overall | Position | Club | |
---|---|---|---|---|---|---|
146 | Sokratis | 30 | 23000000.0 | 84.0 | CB | Arsenal |
281 | S. Mustafi | 26 | 225000000.0 | 82.0 | CB | Arsenal |
311 | L. Koscielny | 32 | 125000000.0 | 82.0 | CB | Arsenal |
464 | Héctor Bellerín | 23 | 165000000.0 | 80.0 | CB | Arsenal |
69 | Azpilicueta | 28 | 35000000.0 | 86.0 | CB | Chelsea |
200 | Marcos Alonso | 27 | 24000000.0 | 83.0 | CB | Chelsea |
209 | David Luiz | 31 | 175000000.0 | 83.0 | CB | Chelsea |
257 | A. Rüdiger | 25 | 225000000.0 | 82.0 | CB | Chelsea |
아스날선수와 첼시선수의 선발 선수명단을 비교해보면
- 포지션 대비 능력로 보았을때
아스널의 선수들이 첼시 선수들에 비해 미드필더 부분과 수비부분에서 능력치가 열세임이 확인된다.
- 선수가치 대비 능력치를 보았을때
아스널의 선수들이 첼시 선수들에 비해 공격수 부분은 낮은 몸값대비 비슷한 능력치를 보이고 있는 반면
미드 필더 부분은 아스널 선수들이 더 높은 몸값을 가진 것에 비해 첼시 선수들보다 더 낮은 능력치를 보이고 있다.
즉 포지션별로 선수들의 몸값과 역략을 고려하였을때 아스날 선수단이 첼시 선수단에 비해서 미드필더 부분과 수비부분에서 부족함을 보이고 있음을 알 수 있다.
4. Arsenal F.C는 어떤 선수를 영입해야 할까?
a. EDA
-
필요 포지션의 어떤 선수를 대체해야할지 확인
-
기준은 영입일, 능력치, 잠재력, 나이
방출 기준을 위한 나만의 공식 만들기
- 선수의 미래가치 = (Overall + Potential*2) / Age
(가중치 2, 나이가 낮을 수록 가치가 높아지도록)
- 현재 기량도 고려해야 하지만 추후에도 성장하며 지속적으로 활약해줘야 하기 때문에 Potential을 고려함
1
gunners_lineup['Point'] = (gunners_lineup['Overall'] + gunners_lineup['Potential']*2 / gunners_lineup['Age'])
문제가 되는 미드필더 & 수비 포지션의 선수들을 대상으로 계산한 미래가치를 확인
1
2
3
release_list_mf = gunners_lineup[gunners_lineup['Position']=='MF'][ ['Name','Overall','Potential','Age','Joined', 'Point']]
release_list_mf = release_list_mf.sort_values(by=["Point","Joined","Age"], ascending=[True, False, False])
release_list_mf
Name | Overall | Potential | Age | Joined | Point | |
---|---|---|---|---|---|---|
289 | A. Ramsey | 82.0 | 83.0 | 27 | Jun 13, 2008 | 88.148148 |
199 | H. Mkhitaryan | 83.0 | 83.0 | 29 | Jan 22, 2018 | 88.724138 |
235 | L. Torreira | 82.0 | 87.0 | 22 | Jul 12, 2018 | 89.909091 |
74 | M. Özil | 86.0 | 86.0 | 29 | Sep 2, 2013 | 91.931034 |
1
2
3
release_list_cb = gunners_lineup[gunners_lineup['Position']=='CB'][ ['Name','Overall','Potential','Age','Joined', 'Point']]
release_list_cb = release_list_cb.sort_values(by=["Point","Joined","Age"], ascending=[True, False, False])
release_list_cb
Name | Overall | Potential | Age | Joined | Point | |
---|---|---|---|---|---|---|
311 | L. Koscielny | 82.0 | 82.0 | 32 | Jul 7, 2010 | 87.125000 |
464 | Héctor Bellerín | 80.0 | 85.0 | 23 | Jul 1, 2014 | 87.391304 |
281 | S. Mustafi | 82.0 | 84.0 | 26 | Aug 30, 2016 | 88.461538 |
146 | Sokratis | 84.0 | 84.0 | 30 | Jul 2, 2018 | 89.600000 |
잔류포인트, 합류일자, 나이로 보았을때 가장 위에 위치한 A. Ramsey, L. Koscielny 방출 후 MF, CB한명씩 영입해야 한다.
- Arsenal F.C의 영입방칙은 최근 새로 부임한 아르테타 감독의 영입방침을 따른다.
[영입 방침]
-
선수의 나이는 어릴수록 좋음
-
잠재력 보다 현재 바로 주전으로 사용할 수 있는 선수
-
포지션은 A. Ramsey와 Héctor Bellerín의 상세포지션인 CAM, CB를 따른다.
-
라이벌팀이거나 빅클럽(리그 상위권에 속한 팀)의 선수는 영입하지 않는다.
1
2
3
# 위에서 사용한 Point 데이터를 market에서도 사용하기 위해 전체 선수데이터에도 동일 기준 적용
data['Point'] = (data['Overall'] + data['Potential']*2 / data['Age'])
1
2
3
4
# 전체 데이터에서 원하는 포지션이 있는 데이터만 추출하여 이적시장 데이터 형성 CAM, CB 포지션을 제외한 선수들을 제거
market = data[ (data['Position']=='CAM') | (data['Position']=='CB')]
market.drop(['Unnamed: 0'], axis = 1, inplace = True)
market.head()
ID | Name | Age | Nationality | Overall | Potential | Club | Value | Wage | Preferred Foot | International Reputation | Weak Foot | Skill Moves | Position | Jersey Number | Joined | Contract Valid Until | Height | Weight | LS | ST | RS | LW | LF | CF | RF | RW | LAM | CAM | RAM | LM | LCM | CM | RCM | RM | LWB | LDM | CDM | RDM | RWB | LB | LCB | CB | RCB | RB | Crossing | Finishing | HeadingAccuracy | ShortPassing | Volleys | Dribbling | Curve | FKAccuracy | LongPassing | BallControl | Acceleration | SprintSpeed | Agility | Reactions | Balance | ShotPower | Jumping | Stamina | Strength | LongShots | Aggression | Interceptions | Positioning | Vision | Penalties | Composure | Marking | StandingTackle | SlidingTackle | GKDiving | GKHandling | GKKicking | GKPositioning | GKReflexes | Release Clause | Point | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
12 | 182493 | D. Godín | 32 | Uruguay | 90.0 | 90.0 | Atlético Madrid | 44000000.0 | 125000.0 | Right | 3.0 | 3.0 | 2.0 | CB | 10.0 | Aug 4, 2010 | 2019 | 6'2 | 172lbs | 64+3 | 64+3 | 64+3 | 61+3 | 62+3 | 62+3 | 62+3 | 61+3 | 62+3 | 62+3 | 62+3 | 63+3 | 68+3 | 68+3 | 68+3 | 63+3 | 76+3 | 81+3 | 81+3 | 81+3 | 76+3 | 79+3 | 87+3 | 87+3 | 87+3 | 79+3 | 55.0 | 42.0 | 92.0 | 79.0 | 47.0 | 53.0 | 49.0 | 51.0 | 70.0 | 76.0 | 68.0 | 68.0 | 58.0 | 85.0 | 54.0 | 67.0 | 91.0 | 66.0 | 88.0 | 43.0 | 89.0 | 88.0 | 48.0 | 52.0 | 50.0 | 82.0 | 90.0 | 89.0 | 89.0 | 6.0 | 8.0 | 15.0 | 5.0 | 15.0 | 9.020000e+08 | 95.625000 |
17 | 194765 | A. Griezmann | 27 | France | 89.0 | 90.0 | Atlético Madrid | 78000000.0 | 145000.0 | Left | 4.0 | 3.0 | 4.0 | CAM | 7.0 | Jul 28, 2014 | 2023 | 5'9 | 161lbs | 86+3 | 86+3 | 86+3 | 87+3 | 87+3 | 87+3 | 87+3 | 87+3 | 86+3 | 86+3 | 86+3 | 86+3 | 80+3 | 80+3 | 80+3 | 86+3 | 70+3 | 67+3 | 67+3 | 67+3 | 70+3 | 67+3 | 61+3 | 61+3 | 61+3 | 67+3 | 82.0 | 90.0 | 84.0 | 83.0 | 87.0 | 88.0 | 84.0 | 78.0 | 76.0 | 90.0 | 88.0 | 85.0 | 90.0 | 90.0 | 80.0 | 80.0 | 90.0 | 83.0 | 62.0 | 82.0 | 69.0 | 35.0 | 91.0 | 83.0 | 79.0 | 87.0 | 59.0 | 47.0 | 48.0 | 14.0 | 8.0 | 14.0 | 13.0 | 14.0 | 1.658000e+09 | 95.666667 |
31 | 190460 | C. Eriksen | 26 | Denmark | 88.0 | 91.0 | Tottenham Hotspur | 735000000.0 | 205000.0 | Right | 3.0 | 5.0 | 4.0 | CAM | 10.0 | Aug 30, 2013 | 2020 | 5'11 | 168lbs | 79+3 | 79+3 | 79+3 | 84+3 | 84+3 | 84+3 | 84+3 | 84+3 | 86+3 | 86+3 | 86+3 | 85+3 | 85+3 | 85+3 | 85+3 | 85+3 | 71+3 | 71+3 | 71+3 | 71+3 | 71+3 | 66+3 | 57+3 | 57+3 | 57+3 | 66+3 | 88.0 | 80.0 | 52.0 | 91.0 | 77.0 | 84.0 | 86.0 | 87.0 | 88.0 | 91.0 | 75.0 | 73.0 | 79.0 | 88.0 | 81.0 | 84.0 | 50.0 | 92.0 | 58.0 | 89.0 | 46.0 | 56.0 | 83.0 | 91.0 | 67.0 | 88.0 | 59.0 | 57.0 | 22.0 | 9.0 | 14.0 | 7.0 | 7.0 | 6.0 | 1.415000e+09 | 95.000000 |
42 | 205600 | S. Umtiti | 24 | France | 87.0 | 92.0 | FC Barcelona | 57000000.0 | 205000.0 | Left | 3.0 | 3.0 | 2.0 | CB | 23.0 | Jul 12, 2016 | 2023 | 6'0 | 165lbs | 70+3 | 70+3 | 70+3 | 69+3 | 69+3 | 69+3 | 69+3 | 69+3 | 69+3 | 69+3 | 69+3 | 70+3 | 73+3 | 73+3 | 73+3 | 70+3 | 80+3 | 81+3 | 81+3 | 81+3 | 80+3 | 81+3 | 84+3 | 84+3 | 84+3 | 81+3 | 69.0 | 51.0 | 79.0 | 81.0 | 70.0 | 69.0 | 72.0 | 62.0 | 73.0 | 77.0 | 71.0 | 73.0 | 68.0 | 82.0 | 66.0 | 83.0 | 89.0 | 78.0 | 84.0 | 74.0 | 81.0 | 87.0 | 58.0 | 58.0 | 61.0 | 82.0 | 90.0 | 89.0 | 86.0 | 15.0 | 10.0 | 14.0 | 12.0 | 15.0 | 1.211000e+09 | 94.666667 |
61 | 201942 | Roberto Firmino | 26 | Brazil | 86.0 | 87.0 | Liverpool | 53000000.0 | 195000.0 | Right | 3.0 | 4.0 | 4.0 | CAM | 9.0 | Jul 6, 2015 | 2023 | 5'11 | 168lbs | 83+3 | 83+3 | 83+3 | 83+3 | 84+3 | 84+3 | 84+3 | 83+3 | 84+3 | 84+3 | 84+3 | 83+3 | 82+3 | 82+3 | 82+3 | 83+3 | 72+3 | 73+3 | 73+3 | 73+3 | 72+3 | 69+3 | 67+3 | 67+3 | 67+3 | 69+3 | 72.0 | 87.0 | 77.0 | 86.0 | 81.0 | 87.0 | 80.0 | 65.0 | 75.0 | 88.0 | 78.0 | 77.0 | 80.0 | 86.0 | 81.0 | 81.0 | 81.0 | 90.0 | 74.0 | 76.0 | 73.0 | 58.0 | 87.0 | 85.0 | 72.0 | 87.0 | 60.0 | 64.0 | 42.0 | 8.0 | 11.0 | 9.0 | 6.0 | 10.0 | 1.047000e+09 | 92.692308 |
시각화 하여 비교 후 영입 명단 작성
1
import matplotlib.pyplot as plt
plt.subplots(행, 열, figsize=(가로, 세로))
심화
여러개의 그래프를 한번에 그리기 위하여 설정해 줍니다.
이것을 변수 ax에 담는다면 ax[1, 1]은 1열 1행에 그래프가 그려집니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
f, ax = plt.subplots(2,4, figsize = (35,10))
compare_list_mf = ['Age', 'Overall', 'Point', 'BallControl']
compare_list_cb = ['Age', 'Overall', 'Point', 'Interceptions']
for i in range(8):
# CAM 선수데이터를 비교할 그래프
if i < 4 : # Age ~ BallControl 각각 1개씩 그래프에 들어가도록 하기 위함
sns.barplot(x = compare_list_mf[i], y='Name',
data= market[market['Position']=='CAM'][:15], ax=ax[i//4, i%4] )
# [:15] 상위 15명 데이터만 추출
# ax=ax[i//4, i%4] 4개의 그래프만 출력하기 위함
# 위에서 지정한 4개의 컬럼까지 출력하면 아래 subplot으로 이동해서 그리게 하기 위함
else :
sns.barplot(x = compare_list_cb[i%4], y='Name', data= market[market['Position']=='CB'][:15], ax=ax[i//4, i%4])
plt.barplot(x, y, data, palette, ax)
심화
평균치 이상이면 음영에 차이를 주기 & 평균선 그어주기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
f, ax = plt.subplots(2, 4, figsize=(35, 10))
compare_list_mf = ['Age', 'Overall', 'Point', 'BallControl']
compare_list_cb = ['Age', 'Overall', 'Point', 'Interceptions']
for i in range(8):
if i < 4:
colors = ['firebrick' if x > market[market['Position'] == 'CAM'][:15][compare_list_mf[i]].mean()
else 'gray' for x in market[market['Position'] == 'CAM'][:15][compare_list_mf[i]]]
sns.barplot(x=compare_list_mf[i], y='Name', data=market[market['Position']
== 'CAM'][:15], palette=colors, ax=ax[i//4, i % 4])
ax[i//4, i % 4].axvline(market[market['Position'] == 'CAM']
[:15][compare_list_mf[i]].mean(), ls='--')
else:
sns.barplot(x=compare_list_cb[i % 4], y='Name',
data=market[market['Position'] == 'CB'][:15], ax=ax[i//4, i % 4])
ax[i//4, i % 4].axvline(market[market['Position'] == 'CB']
[:15][compare_list_cb[i % 4]].mean(), ls='--')
결론
- 포지션 별로 4개의 주요 지표를 비교해 보았을때 영입 list 는 다음과 같다.
[미드필더]
- N.Fekir :Ramsey 선수보다 어리면서도, Overall이 높아 바로 기용이 가능하고 미래 가치인 Point도 평균치 이상으로 가장 적합하다.
[수비수]
- S.de Vrij : L. Koscielny 선수보다 매우 어리고, Overall도 높아 바로 기용이 가능하고, 미래 가치인 Point도 평균치로 나이대비 준수한 편이며, 수비수의 주요 지표인 Interceptions 수치가 상위권으로 가장 적합하다.
댓글남기기