Get game logs for each team


In [1]:
import goldsberry
import os
import pandas as pd
import csv
from goldsberry.team import *
pd.set_option("display.max_columns",150) # Change Pandas Display Options
goldsberry.__version__


Out[1]:
'0.8.0.1'

In [2]:
def ensure_dir(f):
    d = os.path.dirname(f)
    if not os.path.exists(d):
        os.makedirs(d)

In [3]:
def write_csv(team_stats, season):
    if (len(team_stats.logs()) < 1):
        return
    team_id = team_stats.logs()[0]['Team_ID']
    folder_name =  os.path.join(os.getcwd(), season + '_team_stats')    
    complete_name = os.path.join(folder_name, str(season) + '_' + str(team_id) + '.csv')
    print complete_name
    ensure_dir(complete_name)    
    with open(complete_name, 'w') as csvfile:
        fieldnames = ['AST','BLK','DREB','FG3A','FG3M','FG3_PCT','FGA','FGM','FG_PCT','FTA',
                      'FTM','FT_PCT','GAME_DATE','Game_ID','MATCHUP','MIN','OREB','PF',
                      'PTS','REB','STL','TOV','Team_ID','WL']
        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

        writer.writeheader()
        for team_row in team_stats.logs():
            writer.writerow({
                          'AST': team_row['AST'],
                          'BLK': team_row['BLK'],
                          'DREB': team_row['DREB'],
                          'FG3A': team_row['FG3A'],
                          'FG3M': team_row['FG3M'],
                          'FG3_PCT': team_row['FG3_PCT'],
                          'FGA': team_row['FGA'],
                          'FGM': team_row['FGM'],
                          'FG_PCT': team_row['FG_PCT'],
                          'FTA': team_row['FTA'],
                          'FTM': team_row['FTM'],
                          'FT_PCT': team_row['FT_PCT'],
                          'GAME_DATE': team_row['GAME_DATE'],
                          'Game_ID': team_row['Game_ID'],
                          'MATCHUP': team_row['MATCHUP'],
                          'MIN': team_row['MIN'],
                          'OREB': team_row['OREB'],
                          'PF': team_row['PF'],
                          'PTS': team_row['PTS'],
                          'REB': team_row['REB'],
                          'STL': team_row['STL'],
                          'TOV': team_row['TOV'],
                          'Team_ID': team_row['Team_ID'],
                          'WL': team_row['WL']})
        print "Done."

In [6]:
## get all team ids
gameids = pd.DataFrame(goldsberry.GameIDs().game_list())
filter_season = '22015'
teamids_2015 = gameids['TEAM_ID'].ix[gameids['SEASON_ID']==filter_season].drop_duplicates().tolist()

## for each team, get the game logs and write in a csv -- in the given folder
for team in teamids_2015:    
    team_stats = goldsberry.team._Team2.game_logs(team)
    write_csv(team_stats, filter_season)