개발은 처음이라 개발새발

agg 함수를 이용한 여러 스탯 평균 구하기 본문

파이썬/판다스

agg 함수를 이용한 여러 스탯 평균 구하기

leon_choi 2022. 5. 25. 23:47
반응형

스포츠 데이터를 다루는 직업을 하면서 게임에 적용할 새로운 가공 데이터를 생성하거나 

게임 페이지에 표출할 데이터를 만들어야 할 때 항상 패시브로 들어가는 데이터가 있다면 '평균'입니다.

 

분량이 많지 않다면 엑셀로 간다하게 할수도 있지만 한 선수의 시즌 전체, 더 나아가

해당 시즌에 출전한 모든 선수의 평균을 구해야 한다고 하면 개인 역량상 엑셀 함수만으로 꽤나 막막합니다. 

 

이때 간단한 판다스 코드가 있다면 "groupby(['column']).agg({key: value})" 입니다.

 

우선 데이터를 불러옵니다. 전 개인적으로 크롤링한 kbl 21/22 정규시즌을 불러오겠습니다.

 

import pandas as pd
import numpy as np

df = pd.read_excel("kbl.xlsx", sheet_name="nba")

print(df)

이렇게 개막부터 정규시즌 마지막 경기까지의 기록이 불러와졌습니다. 저는 이 항목들 중 name과 team으로 그룹을 지어 pts(총득점), reb(리바운드), as(어시스트), stl(스틸), bs(블록), to(턴오버) 총 6가지 기록의 평균을 구해보겠습니다. 

 

df1 = df.groupby(['name','team']).agg({'pts':np.average, 'reb':np.average, 
'as':np.average,'stl':np.average, 'bs':np. average, 'to':np.average})

print(df1)

간단한 코드로 198명의 6가지 평균 스탯이 나온 것을 확인할 수 있습니다. 

agg 함수의 경우 딕셔너리 형태를 보이고 있는데요. 

 

딕셔너리의 기본 구조는 { "key" : "vlaue" } 입니다. key는 index를 value는 해당 index의 값이 되는데요. 데이터 프레임의 경우 key 값이 컬럼(column)이 되고 value는 해당 컬럼의 값이 됩니다.   

반응형