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

르브론 제임스의 클러치 타임 기록 분석하기 vs 카와이 레너드 with Python

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

르브론 제임스 vs 카와이 레너드 in 클러치 능력

르브론 제임스라는 선수는 팬들 사이에서 확실히 호불호가 갈린다. 릅빠와 릅까가 나눠지기 때문에 항상 르브론 제임스의 클러치 타임 능력 평가에 대해서 LBJ는 확실한 해결사라고 하는 사람도 있고, LBJ는 새가슴이다라고 사람이 나눠진다. 그래서 이번 시간에 르브론 제임스 실제로 19-20  정규 시즌에 클러치 타이밍 때 어느 정도의 활약을 펼쳤는지 경쟁자이자 개장수 카와이 레너드와 비교를 해보도록 하겠다. 지표는 승률, 야투율, 마진으로 비교해보도록 하겠다.

 

 

NBA_API

기존에는 NBA Basketball_Reference 사이트에서 크롤링해와서 사용했는데, 역시나 나와 같은 생각을 하고 있는 사람들이 많았다. 이미 NBA_API라는 패키지를 만들어서 NBA에서 제공되고 있는 상세 지표를 제공하고 있는 분이 계셨다. 해당 패키지 때문에 데이터 수집과 정제에 필요한 고생을 덜었다. "pip install nba_api"로 설치하면 바로 사용할 수 있다. 상세 내용은 아래 링크로 확인 바란다.

 

github.com/swar/nba_api

 

swar/nba_api

An API Client package to access the APIs for NBA.com - swar/nba_api

github.com

 

 

Code

1. 우선 NBA 전체 선수 리스트를 아래와 같이 가져오겠다.

from nba_api.stats.static import players

#NBA 선수 리스트 가져오기
nba_players=players.get_players()
name=[]
ids=[]

#현역 선수만 포함
for i in nba_players:
    if i['is_active']== True:
        name.append(i['full_name'])
        ids.append(i['id'])

#해당 데이터에는 선수당 특정 ID값이 부여
import pandas as pd
dff=pd.DataFrame([name,ids]).T
dff.columns=['name','id']
dff['name']=df['name'].str.lower()

2. 르브론 제임스 클러치 기록 

ㄴ 클러치 타임은 보통 4 쿼터 마지막 5분 시점부터라고 한다. 그래서 여기서는 경기 종료 5분, 3분, 1분 전 상대팀과 점수 차이가 5점 이내일 때의 기록을 가져왔다. df를 출력하면 세부 지표를 볼 수 있을 것이다. 

from nba_api.stats.endpoints import playerdashboardbyclutch

lbj=df.query('name=="lebron james"')['id'].values[0]
data=playerdashboardbyclutch.PlayerDashboardByClutch(player_id=lbj,season_type_playoffs='Regular Season')
clutch=data.nba_response.get_data_sets()
min_5=clutch['Last5MinPlusMinus5PointPlayerDashboard']['data'][0]
min_3=clutch['Last3MinPlusMinus5PointPlayerDashboard']['data'][0]
min_1=clutch['Last1MinPlusMinus5PointPlayerDashboard']['data'][0]

df=pd.DataFrame([min_5,min_3,min_1]).T
df.index=clutch['Last5MinPlusMinus5PointPlayerDashboard']['headers']
df = df.rename(columns=df.iloc[0])
df = df.drop(df.index[0])

3. 카와이 레너드 기록도 위 방식과 동일하게 가져오면 된다. 

 

 

시각화

승률, 야투율, 경기 마진 비교해보도록 하겠다. 

 

1. 승률

승률 사이에서는 정말로 큰 차이가 없다. 5분 전 5점 차이 상황에서는 르브론이 카와이보다 조금 높은 점 빼고는 거의 유사하다. 특이한 점은 두 선수 다 종료 1분 전 상황에서는 승률이 모두 70%를 넘는다.

kw_=df2[df2.index=='W_PCT'].T
kw_.columns=['kw']
lbj_=df[df.index=='W_PCT'].T
lbj_.columns=['lbj']
kw_lbj=pd.merge(left=lbj_,right=kw_,how='inner',left_index=True,right_index=True)

import matplotlib.pyplot as plt
kw_lbj.plot(kind='bar')

 

2. 야투 성공률

 

야투 성공률 부분에서는 두 선수가 일부 차이가 난다. 종료 1분 전 5점 차이에 클러치 타임에서는 르브론의 야투 성공률이 약 30%로 11%에 불과한 카와이보다 우수하다. 반면 종료 3분 전 5분 전 상황에서는 카와이가 르브론보다 조금 뛰어난 점을 확인할 수 있다.

3. 마진

 

여기서 확실히 르브론과 카와이의 클러치 타임 능력의 차이가 나타나는 것 같다. 카와이가 클러치 타임에 경기에 나설 때 르브론 제임스 대비 확실하게 경기를 리드하는 득점 마진이 높은 점을 확인할 수 있다. 확실히 카와이 레너드가 공수 겸장이다 보니 공격뿐만 아니라 수비에서도 가져오는 점수가 두 선수의 차이를 만든 것으로 추정된다. 

 

 

마무리

승률이나 야투성공률은 두 선수간 큰 차이가 없는 것으로 나타났다. 다만 왜 NBA 팬들 사이에서 카와이 레너드가 클러치 타임에 르브론보다 뛰어나다고 생각하는 이유는 바로 위에서 언급한 득점 마진에 있다고 본다. 확실히 르브론 제임스보다 약 2배 가까이 클러치 타임에 높은 마진을 기록하고 있다. 클러치 타임에 득점으로 해결해 줄 뿐만 아니라 오늘 경기처럼 뛰어난 수비로 상대 득점을 막기 때문에 해당 지표가 르브론 제임스보다 우수한 것으로 판단된다. 역시 공수 겸장 개장수다.

728x90
반응형

댓글