파이썬/판다스
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는 해당 컬럼의 값이 됩니다.
반응형