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

[NBA] 크리스 폴(Chirs Paul) 분석 With Python #4

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

저번 시간에 이어서 이번에도 파이썬을 통해 내가 가장 좋아하는 포인트 가드 크리스 폴이라는 선수를 분석하고자 한다. 저번 상대팀 별로 크리스 폴의 스텟을 비교했다면 이번에는 더 크게 NBA 동부, 서부 별로 크리스 폴 활약 스텟을 보고자 하고, 그다음으로는 지금까지 크리스 폴이 소속했던 팀 별 커리어 하이 스텟이 어떤지 보고자 한다. 크리스 폴이 상대팀 별로 어떤 커리어 하이 기록을 찍었는지 보기 위해서다. 이번에도 저번과 동일하게 농구 통계 사이트 Basketball-Reference 사이트에서 데이터를 가져와 분석하겠다. 크리스 폴이 서부에 강했는지 아님 동부에 강했느지 그리고 커리어 하이 기록은 어떤 팀 상대로 기록했느지 알아보고자 한다.

 

분석 내용:

  • NBA Western/Eastern 컨퍼런스 팀 별 평균 스탯
  • 상대팀별 최고 스탯 기록 추출

1. 데이터 가져오기

저번 3번째 크리스 폴 선수 분석 내용과 동일하다. 시즌별 누적 경기 기록을 다 가져와서 처리를 하면 끝이다.

import pandas as pd

data=pd.DataFrame()
for i in range(2006,2021):
    tables =pd.read_html(f'https://www.basketball-reference.com/players/p/paulch01/gamelog/{i}/')
    df=tables[7]
    data=data.append(df)
    
data=data[data['G']!='G']

#결장한 경기 행 제외
data=data[(data['PTS']!='Inactive')&(data['PTS']!='Did Not Dress')&(data['PTS']!='Did Not Play')&(data['PTS']!='Not With Team')]

#홈, 원정 컬럼 변경
data.rename(columns={'Unnamed: 5':'Home_Away'},inplace=True)

#홈, 원정 값 추가
data['Home_Away']=data['Home_Away'].fillna('H')
data['Home_Away']=data['Home_Away'].str.replace('@','A')

#필요없는 첫 두 컬럼 제외
data=data.drop(['Rk','G'],axis=1)

data['PTS']=data['PTS'].astype(int)
data['AST']=data['AST'].astype(int)
data['STL']=data['STL'].astype(int)
data['TRB']=data['TRB'].astype(int)

2. 컨퍼런스 별 평균 스탯 비교

크리스 폴이 지금까지 상대해온 팀들 리스트를 쭉 뽑아와서 서부, 동부 팀을 정리해보겠다.

  • 동부: CLE, ORL, MIA, ATL, PHI, BOS, MIL, CHA, DET, WAS, NYK, CHI, IND, TOR, BRK, CHO
  • 서부: SAC, HOU, DAL, DEN, MIN, SEA, GSW, MEM, POR, PHO, LAC, SAS, LAL, NJN, UTA, OKC, NOH, NOP

위에서 정리한 동서부 팀을 기준으로 해서 열을 하나 더 만들어 보도록 하겠다. True가 동부, False가 서부팀을 상대했다고 보면 된다. 

east =['CLE', 'ORL', 'MIA', 'ATL', 'PHI', 'BOS', 'MIL', 'CHA', 'DET', 'WAS', 'NYK', 'CHI', 'IND', 'TOR', 'BRK', 'CHO']
data['Opp_conference'] = data['Opp'].apply(lambda x : True if x in east else False)

상대 컨퍼런스 별 평균 스탯 구하기

data.groupby('Opp_conference')['AST','STL','PTS'].mean()

Output: 누적 상대 컨퍼런스 별 평균 스탯은 동부, 서부 뚜렷한 차이는 나타나지 않았다.

이 내용을 소속팀 별로 컨퍼런스 상대 스탯이 어떤지를 한번 더 분석해보았다.

opp_stats=data.groupby(['Tm','Opp_conference'])['AST','STL','PTS'].mean()

Output: OKC 시절을 제외한 타 소속팀에서는 어느 정도 동부와 서부 팀 간 스탯 차이가 있었고, 확실히 서부팀에서의 평균 득점이 높은 점을 확인할 수 있다. 

2. 상대팀 별 최고 스탯 나열하기

굉장히 쉽다 위에서 뽑은 데이터에서 평균 대신 max로 바꾸면 된다.

data.groupby('Opp_conference')['AST','STL','PTS','TRB'].max()

Output: 컨퍼러스별로는 최고 어시스트 기록을 20개 이상 찍었던 게 정말 놀랍다.

 

data.groupby('Opp')['AST','STL','PTS','TRB'].max()

Output: 크리스폴의 커리어 하이 득점은 43점으로 골든스테이트로 상대했을 때 기록했고, 밀워키/클리블랜드 상대로 최고 어시스트 하이를 기록했다.

 

4. 결론

결론이라고 말할 게 없다. 크리스폴은 서부 동부 크게 가리지 않고 잘했다. 역시 크리스 폴이다. OKC 시절에는 오히려 동부 서부 팀 상대 기록 편차가 오히려 줄어든 상황이다. 크리스 폴 커리어 하이 득점은 43점으로 GSW 골든스테이트 워리어스 팀 상대로 기록했었다. 근데 휴스턴 시절에서 골든 스테이트 상대로 왜?... 그놈의 부상이 문제다. 다음 시간에 더 알찬 내용으로 크리스 폴에 대해 분석해보도록 하겠다. 

 

728x90
반응형

댓글