본문 바로가기
문송충의 코딩하기/EPL 분석 With Python

EPL 분석 - 오바메양 아스날 이적 후 기록한스텟 파이썬으로 분석하기

by 동장군님 2020. 9. 24.
728x90
반응형

아스날이 보유한 유일한 월드 클래스 선수이자 아스날의 캡틴 오바메양 기록에 대해 파이썬으로 분석해보고자 한다. 오바메양이 아스널로 이적한 이후 단순 1차 스텟인 공격 포인트 수치 기록 대신 경기당 효율이 어떤지를 한번 분석해보고자 한다. 오바메양이 이적한 지 2년 반 밖에 안됐기 때문에 데이터는 많지는 않지만 이적 후 오바메양이 보여준 모습을 데이터로 한번 시각화해보고자 이번 글을 작성하게 되었다.

 


 

Data Source

축구 통계 사이트 FBREF 사이트에서 데이터를 사용했다.

 

fbref.com/en/players/d5dd5f1f/Pierre-Emerick-Aubameyang#all_stats_shooting_dom_lg

 

Pierre-Emerick Aubameyang Stats | FBref.com

Career: 351 MP, 194 Gls, 51 Ast, 22 CrdY, 1 CrdR, 2020-2021: 2 MP, 1 Gls, 1 Ast, 1 CrdY, 0 CrdR, FW-MF (WM), Gabon, 187cm, 80kg

fbref.com

 

시즌별 경기당 공격 포인트 개수

오바메양 이적 이후 아스널에서 경기당 공격 포인트 개수가 어떤지 분석해보겠다. 우선 아래 전처리 과정을 거치면 이 분석에 필요한 데이터를 얻을 수 있을 것이다.

 

import pandas as pd
tables=pd.read_html('https://fbref.com/en/players/d5dd5f1f/Pierre-Emerick-Aubameyang')
df=tables[0]

abc=pd.merge(df.xs('Unnamed: 0_level_0',level=0,axis=1),
         df.xs('Unnamed: 2_level_0',level=0,axis=1),
         left_index=True, right_index=True)
abcd=pd.merge(abc,
         df.xs('Playing Time',level=0,axis=1),
         left_index=True, right_index=True)
abcde=pd.merge(abcd,
         df.xs('Performance',level=0,axis=1),
         left_index=True, right_index=True)
         
dff=abcde[abcde['Squad']=='Arsenal']
dff=dff[:3]
dff['per_game_point']=(dff['Gls'].astype(float)+dff['Ast'].astype(float))/dff['MP'].astype(float)

 

시즌을 치를수록 경기당 포인트 개수가 낮아지는 점을 확인할 수 있다. 아스날 이적 후 첫 시즌에는 경기당 공격포인트를 하나 이상을 기록하면서 폭발적인 모습을 보였다. 다만 그 이후 본격적인 2번째 시즌부터 오바메양의 나이도 나이인 만큼 조금 노쇠화가 오는 것 같고, 상대방 수비수가 오바메양을 어떻게 수비해야 되는지 연구가 돼서 오바메양의 경기당 공격포인트 개수는 많이 떨어진 상황이다. 올해에는 아르테타 체재 하에서 챔스 진출을 해야 되기 때문에 오바메양이 최소 경기당 0.8개 공격포인트를 기록했으면 한다.

 

import matplotlib.pyplot as plt

plt.rcParams["font.family"] = 'Malgun Gothic'
plt.rcParams["font.size"] = 16
plt.figure(figsize=(16,8))

plt.bar(dff.Season, dff['per_game_point'])
plt.title('경기당 공격포인트 개수')
plt.ylim(0.0,1.5)

for x, y in enumerate( list(dff['per_game_point']) ):
    plt.text(x, y, '{:.2f}'.format(y), fontsize=15, color='tab:red', 
                    horizontalalignment='center', verticalalignment='bottom')

plt.show()

 

 

 

 

 

 

슈팅 효율

 

리그 최고의 공격수인 만큼 오바메양의 슈팅 지표를 안 볼 수가 없다. 그래서 시즌 별로 경기당 슈팅 효율을 살펴보고자 한다.

 

df2=tables[1]
qwer=pd.merge(df2.xs('Unnamed: 0_level_0',level=0,axis=1),df2.xs('Unnamed: 2_level_0',level=0,axis=1),
              left_index=True, right_index=True)
qwert=pd.merge(qwer,df2.xs('Standard',level=0,axis=1),left_index=True, right_index=True)
dff2=qwert[qwert['Squad']=='Arsenal'][:3]

dff2['Sh/90']=dff2['Sh/90'].astype(float)
dff2['SoT/90']=dff2['SoT/90'].astype(float)

plt.rcParams["font.family"] = 'Malgun Gothic'
plt.rcParams["font.size"] = 16
plt.figure(figsize=(16,8))

plt.plot(dff2.Season,dff2['Sh/90'])
for x, y in enumerate( list(dff2['Sh/90']) ):
    plt.text(x, y, y, fontsize=15, color='tab:red', 
                    horizontalalignment='center', verticalalignment='bottom')


plt.plot(dff2.Season,dff2['SoT/90'])
for x, y in enumerate( list(dff2['SoT/90']) ):
    plt.text(x, y, y, fontsize=15, color='tab:red', 
                    horizontalalignment='center', verticalalignment='bottom')
    
plt.title('경기당 슈팅 개수 & 유효 슈팅 개수')
plt.legend(['경기당 슈팅개수','경기당 유효 슈팅 개수'])

plt.ylim(0,4)

 

 

dff2['SoT%']=dff2['SoT%'].astype(float)
plt.rcParams["font.family"] = 'Malgun Gothic'
plt.rcParams["font.size"] = 16
plt.figure(figsize=(16,8))

plt.plot(dff2.Season,dff2['SoT%'])
for x, y in enumerate( list(dff2['SoT%'])):
    plt.text(x, y, '{:.1f}%'.format(y), fontsize=15, color='tab:red', 
                    horizontalalignment='center', verticalalignment='bottom')
    
plt.title('유효 슈팅 비율')                          
plt.ylim(0,80)
plt.show()

 

 

전반적으로 첫 시즌 대비 슈팅 효율 지표가 떨어진 점을 확인할 수 있다. 경기당 유효 슈팅 개수는 1.2개로 공격수치고 생각보다 낮다. 경기 보면 최소 2~3개 유효슈팅을 기록한 것 같은데 데이터 상에서는 생각과는 다르다. 어찌 보면 오바메양이 이적 첫 시즌과 달리 2번째, 3번째 시즌에서는 왼쪽 윙으로 포지션 변경됨에 따라 개수가 자연스럽게 적어진 게 아닌가 싶다. 아무래도 패널티박스 안에보다 외곽에서 슈팅하는 경우가 많아서 유효 슈팅 개수와 유효 슈팅 비중이 적어진 것으로 추측된다.

 

 

 

 

 

 

 

728x90
반응형

댓글