NBA 오픈API사용을 도와주는 nba_api 라이브러리 알아보기!

목차

    2019. 2. 7. 06:30

    빅데이터 열풍이 뜨겁다. 관련 사업도 많이 보이고, 여러가지 공모전도 있다. 하지만 빅데이터 하면 우리나라보다 미국을 떠올리게 된다. 구글, 아마존 등 데이터를 잘 활용하는 기업들도 많고, 관련 기술이나 문화 등 전반적으로 더 뛰어나기 때문이다. 우리나라보다 선진국이기 때문에 더 뛰어날 수 밖에 없지만, 문화나 기반을 보면 격차가 크다고 느낀다. 스포츠 관련 데이터도 역시 차이가 있다. 미국이 잘 정제된 데이터를 더 쉽게 접근할 수 있다고 느낀다.

    오늘은 NBA 오픈 API를 쉽게 사용할 수 있도록 도와주는 nba_api 라이브러리에 대해서 알아보도록 하겠다.


    nba_api


    NBA는 다 알다시피 미국 프로농구이다. 관련 데이터는 오픈 API로 공개돼 있어 사용이 가능하다. 하지만, 누군가 이마저도 불편하다고 생각했는지 라이브러리를 만들어 더 쉽게 사용할 수 있도록 했다.


    nba_api 라이브러리를 설치하는 방법은 간단하다. pip를 이용해서 쉽게 설치할 수 있다.

    > pip install nba_api


    nba_api는 경기 결과 뿐만 아니라, 선수와 팀의 기록도 살펴 볼 수 있다. 예전에 한국을 방문한 '스테판 커리'를 한 번 찾아보았다. 우선 스테판 커리의 선수ID를 찾기 위해서 player를 import한다. 여기서 find_players_by_first_name 함수를 이용해서 선수ID를 찾을 수 있다.


    "stephen"이 들어가 있는 선수명단들을 list형태로 보여준다. 출력결과의 중간에 보면 커리의 선수ID가 201939인 것을 알 수 있다.


    > # encoding = utf-8


    > from nba_api.stats.static import players


    > df = players.find_players_by_first_name("stephen")


    > print(df)



    이제 선수ID를 이용해서 선수 정보를 살펴보도록 하자. 선수의 정보는 commonplayerinfo를 import해서 볼 수 있다.


    > from nba_api.stats.endpoints import commonplayerinfo


    > player_info = commonplayerinfo.CommonPlayerInfo(player_id=201939)

    > test = player_info.get_data_frames()

    > print(test)


    선수의 정보를 list형태로 보여준다. 첫 번째에는 이름, 키, 몸무게, 출신학교 등 프로필에 대한 정보를, 두번째에는 경기결과 통계치를, 세번째에는 출전했던 season id를 보여준다.



    경기 기록을 살펴보기 위해서는 playercareerstats를 이용하면 된다. 시즌별 경기기록들을 살펴볼 수 있다. game id를 통해서 game별 경기기록도 살펴볼 수 있다.


    > from nba_api.stats.endpoints import playercareerstats


    > career = playercareerstats.PlayerCareerStats(player_id='201939')

    > temp = career.get_data_frames()

    > print(temp[0])


    보여주는 경기 기록들이 굉장히 많다. 필자는 NBA경기를 자주 보지 않아서 크게 와 닿지는 않지만, NBA를 좋아한다면 이런 여러가지 기록들을 직접 확인해보고 비교해 보는  재미가 있을 듯 하다.


    스테판커리_데이터

    ( 스테판 커리 경기기록, 볼 수 있는 기록들이 많다 )


    FG3_PCT는 3점슛 성공률이다. 40%를 넘어서는 엄청난 성공률을 확인해 볼 수 있었다. 특히 최근 3년간은 계속해서 성공률이 상승하고 있다.


    이 외에도 시즌별, 게임별, 팀별로 볼 수 있는 기록들이 많다. NBA에 관심이 있다면, 데이터를 이용해 경기를 분석하고 모델링도 가능하지 않을까 한다. 제공하고 있는 라이브러리와 함수들이 궁금하다면, 파이썬 라이브러리 폴더에 nba_api 폴더로 가보자. endpoint와 static폴더안에 python파일들이 제공하고 있는 라이브러리들이라고 보면 되겠다.


    endpoints파일들

    ( nba_api폴더의 endpoint에 파이썬 파일들 )


    nba_api에 대해서 더 자세한 내용이 궁금하다면, 아래 주소를 참조해보자. github에 코드와 documentaion을 확인할 수 있다.

    ( 참조: nba_api github페이지 바로가기 )



    오늘은 이렇게 NBA 오픈API 사용을 도와주는 nba_api라이브러리에 대해서 알아보았다. 오픈API를 통해서 정보가 잘 공개돼 있지만, 라이브러리를 통해서 더 쉽고 간편하게 사용이 가능했다. 우리나라에도 스포츠 데이터들이 잘 정제되고 공개돼서 많은 사람들이 활용할 수 있었으면 하고 바래본다.


    오픈API를 사용하면 다양한 재미있는 일들을 해 볼 수 있다. 파이썬을 활용한 오픈API 사용이 궁금하다면 아래 글을 참조해보자.

    (참조: 오픈API를 활용한 사례는 어떤 것들이 있을까?)