def get_game_logs(self, season='2016-17', reg_season=True): import pandas as pd try: if (reg_season == True): player_info = pd.read_pickle('player_game_logs/' + str(self.player_id) + '-' + season + '.pckl') else: player_info = pd.read_pickle('player_game_logs/' + str(self.player_id) + '-' + season + 'p.pckl') return player_info except FileNotFoundError: from nba_py import player print( 'File not found while retrieving game logs, retrieving now...') if (reg_season == True): player_info = player.PlayerGameLogs(self.player_id, season=season) player_info = player_info.info() player_info.to_pickle('player_game_logs/' + str(self.player_id) + '-' + season + '.pckl') else: player_info = player.PlayerGameLogs(self.player_id, season=season, season_type='Playoffs') player_info = player_info.info() player_info.to_pickle('player_game_logs/' + str(self.player_id) + '-' + season + 'p.pckl') return player_info
def players_and_season(playerid, season): # season example: "2016-17" # type example: "Regular Season" or "Playoffs" player_game_logs = player.PlayerGameLogs(playerid, season=season) player_games = player_game_logs.info() playoffs_playergamelogs = player.PlayerGameLogs(playerid, season=season, season_type="Playoffs") playoffs_player_games = playoffs_playergamelogs.info() player_summary = player.PlayerSummary(playerid) player_summary_info = player_summary.info() headline_stats = player_summary.headline_stats() birth_datestring = player_summary_info[0]["BIRTHDATE"][:10] birth_date = datetime.datetime.strptime(birth_datestring, "%Y-%m-%d") pretty_birth_date = birth_date.strftime("%m-%d-%Y") age = calculate_age(birth_date) player_headshot = "https://ak-static.cms.nba.com/wp-content/uploads/headshots/nba/latest/260x190/" + playerid + ".png" if (not test_link(player_headshot)): player_headshot = False return render_template("players.html", title=player_summary_info[0]["DISPLAY_FIRST_LAST"], player_games=player_games, playoffs_player_games=playoffs_player_games, player_summary_info=player_summary_info[0], headline_stats=headline_stats[0], age=age, pretty_birth_date=pretty_birth_date, season=season, team_img=TEAM_ID_DATA, player_headshot=player_headshot)
def gameLog(id): i=0 player_now = player.PlayerGameLogs(202738, league_id='00', season='2016-17', season_type='Playoffs') if(player_now): player_now = player_now.info() for row, column in player_now.iterrows(): player_now = player.PlayerGameLogs(id, league_id='00', season='2016-17', season_type='Regular Season') return player_now
def players(playerid): """Specific player pages. """ player_summary = player.PlayerSummary(playerid) player_summary_info = player_summary.info() headline_stats = player_summary.headline_stats() to_year = int(player_summary_info[0]["TO_YEAR"]) next_year = to_year + 1 season = str(to_year) + "-" + str(next_year)[2:4] birth_datestring = player_summary_info[0]["BIRTHDATE"][:10] birth_date = datetime.datetime.strptime(birth_datestring, "%Y-%m-%d") pretty_birth_date = birth_date.strftime("%m-%d-%Y") age = calculate_age(birth_date) player_game_logs = player.PlayerGameLogs(playerid, season=season) player_games = player_game_logs.info() playoffs_playergamelogs = player.PlayerGameLogs(playerid, season=season, season_type="Playoffs") playoffs_player_games = playoffs_playergamelogs.info() player_career = player.PlayerCareer(playerid) player_career_regular_season_totals = player_career.regular_season_totals() player_career_post_season_totals = player_career.post_season_totals() player_headshot = "https://ak-static.cms.nba.com/wp-content/uploads/headshots/nba/latest/260x190/" + playerid + ".png" if (not test_link(player_headshot)): player_headshot = False return render_template( "players.html", title=player_summary_info[0]["DISPLAY_FIRST_LAST"], playerid=playerid, player_games=player_games, playoffs_player_games=playoffs_player_games, player_summary_info=player_summary_info[0], headline_stats=headline_stats[0], age=age, pretty_birth_date=pretty_birth_date, season=season, player_career_regular_season_totals=player_career_regular_season_totals, player_career_post_season_totals=player_career_post_season_totals, team_img=TEAM_ID_DATA, player_headshot=player_headshot)
def get_player_log(_pid, _nb_games, _season, _season_type): games_logs = nba_player.PlayerGameLogs(_pid, season=_season, season_type=_season_type).info() # --- game_matchup = [] game_date = [] game_fp = [] game_ttfl = [] if _nb_games > len(games_logs.values): _nb_games = len(games_logs.values) idx = _nb_games - 1 while idx >= 0: game_matchup.append(games_logs['MATCHUP'].values[idx]) game_date.append(games_logs['GAME_DATE'].values[idx]) game_fp.append(score.get_fp_score(games_logs.iloc[[idx]])) game_ttfl.append(score.get_ttfl_score(games_logs.iloc[[idx]])) idx -= 1 return (game_matchup, game_date, game_fp, game_ttfl)
def testPlayerGameLogs(self): playergamelogs = player.PlayerGameLogs(self.playerId, self.leagueId, self.season, self.seasonType) info = playergamelogs.info() self.assertTrue((61, 27) == info.shape) self.assertTrue((12 == info[0:1].PTS).all())
def get_playoff_stats(name): name_split = name.split() first = name_split[0] last = name_split[1] pid = player.get_player(first, last) stats = player.PlayerGameLogs(pid, season_type='Playoffs') return stats.info()
def __init__(self): #player id is for lebron james james = player.PlayerGameLogs('2544', '00', '2017-18', "Regular Season") #get the json array resultSets resp = james.json['resultSets'] #store each of the games in a list for x in resp: self.games = x['rowSet']
def get_player_game_log(player_name, season='2016-17'): id = get_player_id(player_name) try: player_info = pd.read_pickle('player_game_logs/' + str(id) + '-' + season + '.pckl') except FileNotFoundError: print('File not found') player_info = player.PlayerGameLogs(id, season=season) player_info = player_info.info() player_info.to_pickle('player_game_logs/' + str(id) + '-' + season + '.pckl') return player_info
def create_game_log_profile(player_id, player_dict): """Creates a file storing game logs of a player given the ID. :param player_dict: self explanatory :param player_id: the ID of the player """ new_path = os.path.join(PLAYER_BASE_PATH, f'{player_dict[player_id]}.json') if not os.path.exists(new_path): print("Retrieving player game log ... Please wait.") game_log = player.PlayerGameLogs(player_id).json with open(new_path, 'w') as player_file: json.dump(game_log, player_file)
def test(): pid = get_player('Tim', 'Duncan') vs_pid = get_player('Stephen', 'Curry') assert player.PlayerList() assert player.PlayerSummary(pid) # assert player.PlayerGeneralSplits(pid) # assert player.PlayerOpponentSplits(pid) assert player.PlayerLastNGamesSplits(pid) assert player.PlayerInGameSplits(pid) assert player.PlayerClutchSplits(pid) # assert player.PlayerShootingSplits(pid) assert player.PlayerPerformanceSplits(pid) assert player.PlayerYearOverYearSplits(pid) assert player.PlayerCareer(pid) assert player.PlayerProfile(pid) assert player.PlayerGameLogs(pid) assert player.PlayerShotTracking(pid) assert player.PlayerReboundTracking(pid) assert player.PlayerPassTracking(pid) assert player.PlayerDefenseTracking(pid) # assert player.PlayerShotLogTracking(pid) # assert player.PlayerReboundLogTracking(pid) assert player.PlayerVsPlayer(pid, vs_pid)
def testAll(self): assert player.PlayerList() assert player.PlayerSummary(self.playerId) # assert player.PlayerGeneralSplits(self.playerId) # assert player.PlayerOpponentSplits(self.playerId) assert player.PlayerLastNGamesSplits(self.playerId) assert player.PlayerInGameSplits(self.playerId) assert player.PlayerClutchSplits(self.playerId) # assert player.PlayerShootingSplits(self.playerId) assert player.PlayerPerformanceSplits(self.playerId) assert player.PlayerYearOverYearSplits(self.playerId) assert player.PlayerCareer(self.playerId) assert player.PlayerProfile(self.playerId) assert player.PlayerGameLogs(self.playerId) assert player.PlayerShotTracking(self.playerId) assert player.PlayerReboundTracking(self.playerId) assert player.PlayerPassTracking(self.playerId) assert player.PlayerDefenseTracking(self.playerId) # assert player.PlayerShotLogTracking(self.playerId) # assert player.PlayerReboundLogTracking(self.playerId) assert player.PlayerVsPlayer(self.playerId, self.vs_playerId)
def nba(): body = request.values['Body'] nba_players = player.PlayerList(league_id='00', season='2018-19', only_current=1).info() pid = nba_players[nba_players.DISPLAY_FIRST_LAST == str(body)]['PERSON_ID'] info = player.PlayerGameLogs(pid, season='2018-19').info() numbers = '\n' + '2018-19 Stats' + '\n' + 'PTS: ' + str( info.PTS.mean().round(1)) + '\n' + 'AST: ' + str( info.AST.mean().round(1)) + '\n' + 'REB: ' + str( info.REB.mean().round(1)) + '\n' + 'STL: ' + str( info.REB.mean().round(1)) + '\n' + 'BLK: ' + str( info.STL.mean().round(1)) ps = player.PlayerSummary(pid) ps = ps.info() ps = ps.to_dict() psa = str(body) + '\n' + 'TEAM: ' + str( ps['TEAM_NAME'][0]) + '\n' + 'HEIGHT: ' + str( ps['HEIGHT'][0]) + '\n' + 'POSITION: ' + str(ps['POSITION'][0]) fr = str(psa) + str(numbers) r = MessagingResponse() res = str(fr) r.message(res) return str(r)
from nba_py import player from nba_py.player import get_player import json mvp_name = [("James", "Harden"), ("Russell", "Westbrook"), ("Lebron", "James"), ("Kawhi", "Leonard"), ("Isaiah", "Thomas"), ("John", "Wall"), ("Kevin", "Durant"), ("Stephen", "Curry"), ("Chris", "Paul"), ("DeMar", "DeRozan")] mvp_id = [] for name in mvp_name: first, last = name mvp_id.append(get_player(first, last_name=last)) print(mvp_id) logs = None for id in mvp_id: player_gamelog = player.PlayerGameLogs(id).info() if not logs: logs = player_gamelog else: logs += player_gamelog print(logs) with open('mvp_game.json', 'w') as f: json.dump(logs, f) # players = player.PlayerList().info() # print players
def getData(name, type, season=''): season = str(season) if type.lower() == 'shotlog': id = getPlayerId(name) year = season + '-' + str(int(season) + 1)[-2:] shot_data = shotchart.ShotChart(id, season=year).json data = shot_data['resultSets'][0]['rowSet'] indices = range(0, len(data)) colnames = shot_data['resultSets'][0]['headers'] df = pd.DataFrame(data, index=indices, columns=colnames) df = df.sort_values( ['GAME_DATE', 'PERIOD', 'MINUTES_REMAINING', 'SECONDS_REMAINING'], ascending=[1, 1, 0, 0]) return df elif type.lower() == 'pergame': id = getPlayerId(name) df = pd.DataFrame( player.PlayerCareer(id, 'PerGame').regular_season_totals()) df.columns = list(map(lambda x: x.upper(), df)) if season: year = season + '-' + str(int(season) + 1)[-2:] df = df.loc[df['SEASON_ID'] == year] return df elif type.lower() == 'gamelog': id = getPlayerId(name) try: season + '-' + str(int(season) + 1)[-2:] except: return 'Season is required. Please fill.' year = season + '-' + str(int(season) + 1)[-2:] df = player.PlayerGameLogs(id, '00', year, 'Regular Season').info() df['GAME_DATE'] = pd.to_datetime(pd.to_datetime( df['GAME_DATE'], infer_datetime_format=True), format='%Y%m%d') return df.sort_values(['GAME_DATE']) elif type.lower() == 'defense': id = getPlayerId(name) year = season + '-' + str(int(season) + 1)[-2:] player.PlayerDefenseTracking(id, 0) json = player.PlayerDefenseTracking(getPlayerId(name), 0, measure_type='Base', per_mode='PerGame', season=year).json data = json['resultSets'][0]['rowSet'] indices = [x[3] for x in data] # Set DEFENSE_CATEGORY as index colnames = json['resultSets'][0]['headers'] df = pd.DataFrame(data, index=indices, columns=colnames) df = df.drop(['CLOSE_DEF_PERSON_ID', 'DEFENSE_CATEGORY'], axis=1) return 'PlayerName: ' + name.upper(), 'Season: ' + year, df elif type.lower() == 'shotmap': id = getPlayerId(name) year = season + '-' + str(int(season) + 1)[-2:] shot_data = shotchart.ShotChart(id, season=year).json data = shot_data['resultSets'][0]['rowSet'] indices = range(0, len(data)) colnames = shot_data['resultSets'][0]['headers'] df = pd.DataFrame(data, index=indices, columns=colnames) df = df.sort_values( ['GAME_DATE', 'PERIOD', 'MINUTES_REMAINING', 'SECONDS_REMAINING'], ascending=[1, 1, 0, 0]) df_size = df.groupby(['SHOT_ZONE_AREA', 'SHOT_ZONE_RANGE']).size() df_made = df.loc[df['SHOT_MADE_FLAG'] == 1].groupby( ['SHOT_ZONE_AREA', 'SHOT_ZONE_RANGE']).size() df_pct = df_made / df_size df_pct = df_pct.fillna(0) df_size = df_size.to_frame('SHOTS_ATT').reset_index() df_made = df_made.to_frame('SHOTS_MADE').reset_index() df_pct = df_pct.to_frame('SHOT_PCT').reset_index() df = df_made.merge(df_size, how='right', on=['SHOT_ZONE_AREA', 'SHOT_ZONE_RANGE']).fillna(int(0)).merge( df_pct, on=['SHOT_ZONE_AREA', 'SHOT_ZONE_RANGE']) df['SHOTS_MADE'] = df['SHOTS_MADE'].astype(int) return df
def _get_query_results(params={}, flatten_keys=False): if 'module' not in params or 'sub_module' not in params or 'function' not in params: return [] if not flatten_keys and 'value_query' not in params: return [] if params['module'] == 'player': if 'first_name' not in params: return [] first = params['first_name'] last = params['last_name'] if 'last_name' in params else None team_id = params['team_id'] if 'team_id' in params else 0 measure_type = params[ 'measure_type'] if 'measure_type' in params else 'Base' per_mode = params['per_mode'] if 'per_mode' in params else 'PerGame' plus_minus = params['plus_minus'] if 'plus_minus' in params else 'N' pace_adjust = params['pace_adjust'] if 'pace_adjust' in params else 'N' rank = params['rank'] if 'rank' in params else 'N' league_id = params['league_id'] if 'league_id' in params else '00' season = params['season'] if 'season' in params else '2016-17' season_type = params[ 'season_type'] if 'season_type' in params else 'Regular Season' po_round = params['po_round'] if 'po_round' in params else '0' outcome = params['outcome'] if 'outcome' in params else '' location = params['location'] if 'location' in params else '' month = params['month'] if 'month' in params else '0' season_segment = params[ 'season_segment'] if 'season_segment' in params else '' date_from = params['date_from'] if 'date_from' in params else '' date_to = params['date_to'] if 'date_to' in params else '' opponent_team_id = params[ 'opponent_team_id'] if 'opponent_team_id' in params else '0' vs_conference = params[ 'vs_conference'] if 'vs_conference' in params else '' vs_division = params['vs_division'] if 'vs_division' in params else '' game_segment = params[ 'game_segment'] if 'game_segment' in params else '' period = params['period'] if 'period' in params else '0' shot_clock_range = params[ 'shot_clock_range'] if 'shot_clock_range' in params else '' last_n_games = params[ 'last_n_games'] if 'last_n_games' in params else '0' only_current = params['only_current'] if 'only_current' in params else 0 just_id = params['just_id'] if 'just_id' in params else True player_id = player.get_player(first, last_name=last, season=season, only_current=only_current, just_id=just_id) if params['sub_module'] == 'player_career': career = player.PlayerCareer(player_id) if params['function'] == 'all_star_season_totals': temp = career.all_star_season_totals() elif params['function'] == 'career_all_star_season_totals': temp = career.career_all_star_season_totals() elif params['function'] == 'college_season_career_totals': temp = career.college_season_career_totals() elif params['function'] == 'college_season_totals': temp = career.college_season_totals() elif params['function'] == 'post_season_career_totals': temp = career.post_season_career_totals() elif params['function'] == 'post_season_rankings': temp = career.post_season_rankings() elif params['function'] == 'post_season_totals': temp = career.post_season_totals() elif params['function'] == 'preseason_career_totals': temp = career.preseason_career_totals() elif params['function'] == 'preseason_season_totals': temp = career.preseason_season_totals() elif params['function'] == 'regular_season_career_totals': temp = career.regular_season_career_totals() elif params['function'] == 'regular_season_rankings': temp = career.regular_season_rankings() elif params['function'] == 'regular_season_totals': temp = career.regular_season_totals() else: return [] elif params['sub_module'] == 'player_clutch_splits': clutch = player.PlayerClutchSplits(player_id, team_id=team_id, measure_type=measure_type, per_mode=per_mode, plus_minus=plus_minus, \ pace_adjust=pace_adjust, rank=rank, league_id=league_id, season=season, season_type=season_type, po_round=po_round, outcome=outcome, \ location=location, month=month, season_segment=season_segment, date_from=date_from, date_to=date_to, opponent_team_id=opponent_team_id, \ vs_conference=vs_conference, vs_division=vs_division, game_segment=game_segment, period=period, shot_clock_range=shot_clock_range, \ last_n_games=last_n_games ) if params['function'] == 'last10sec_deficit_3point': temp = clutch.last10sec_deficit_3point() elif params['function'] == 'last1min_deficit_5point': temp = clutch.last1min_deficit_5point() elif params['function'] == 'last1min_plusminus_5point': temp = clutch.last1min_plusminus_5point() elif params['function'] == 'last30sec_deficit_3point': temp = clutch.last30sec_deficit_3point() elif params['function'] == 'last30sec_plusminus_5point': temp = clutch.last30sec_plusminus_5point() elif params['function'] == 'last3min_deficit_5point': temp = clutch.last3min_deficit_5point() elif params['function'] == 'last3min_plusminus_5point': temp = clutch.last3min_plusminus_5point() elif params['function'] == 'last5min_deficit_5point': temp = clutch.last5min_deficit_5point() elif params['function'] == 'last5min_plusminus_5point': temp = clutch.last5min_plusminus_5point() else: return [] elif params['sub_module'] == 'player_defense_tracking': temp = player.PlayerDefenseTracking(player_id, team_id=team_id, measure_type=measure_type, per_mode=per_mode, plus_minus=plus_minus, \ pace_adjust=pace_adjust, rank=rank, league_id=league_id, season=season, season_type=season_type, po_round=po_round, outcome=outcome, \ location=location, month=month, season_segment=season_segment, date_from=date_from, date_to=date_to, opponent_team_id=opponent_team_id, \ vs_conference=vs_conference, vs_division=vs_division, game_segment=game_segment, period=period, shot_clock_range=shot_clock_range, \ last_n_games=last_n_games ) elif params['sub_module'] == 'player_game_logs': if params['function'] == 'info': temp = player.PlayerGameLogs(player_id, league_id=league_id, season=season, season_type=season_type) else: return [] elif params['sub_module'] == 'player_general_splits': splits = player.PlayerGeneralSplits(player_id, team_id=team_id, measure_type=measure_type, per_mode=per_mode, plus_minus=plus_minus, \ pace_adjust=pace_adjust, rank=rank, league_id=league_id, season=season, season_type=season_type, po_round=po_round, outcome=outcome, \ location=location, month=month, season_segment=season_segment, date_from=date_from, date_to=date_to, opponent_team_id=opponent_team_id, \ vs_conference=vs_conference, vs_division=vs_division, game_segment=game_segment, period=period, shot_clock_range=shot_clock_range, \ last_n_games=last_n_games ) if params['function'] == 'days_rest': temp = splits.days_rest() elif params['function'] == 'location': temp = splits.location() elif params['function'] == 'month': temp = splits.month() elif params['function'] == 'pre_post_all_star': temp = splits.pre_post_all_star() elif params['function'] == 'starting_position': temp = splits.starting_position() elif params['function'] == 'win_losses': temp = splits.win_losses() else: return [] elif params['sub_module'] == 'player_in_game_splits': if params['function'] == 'by_actual_margin': temp = splits.by_actual_margin() elif params['function'] == 'by_half': temp = splits.by_half() elif params['function'] == 'by_period': temp = splits.by_period() elif params['function'] == 'by_score_margin': temp = splits.by_score_margin() else: return [] elif params['sub_module'] == 'player_last_n_games_splits': n_splits = player.PlayerLastNGamesSplits(player_id, team_id=team_id, measure_type=measure_type, per_mode=per_mode, plus_minus=plus_minus, \ pace_adjust=pace_adjust, rank=rank, league_id=league_id, season=season, season_type=season_type, po_round=po_round, outcome=outcome, \ location=location, month=month, season_segment=season_segment, date_from=date_from, date_to=date_to, opponent_team_id=opponent_team_id, \ vs_conference=vs_conference, vs_division=vs_division, game_segment=game_segment, period=period, shot_clock_range=shot_clock_range, \ last_n_games=last_n_games ) if params['function'] == 'game_number': temp = n_splits.gamenumber() elif params['function'] == 'last10': temp = n_splits.last10() elif params['function'] == 'last15': temp = n_splits.last15() elif params['function'] == 'last20': temp = n_splits.last20() elif params['function'] == 'last5': temp = n_splits.last5() else: return [] elif params['sub_module'] == 'player_list': player_list = player.PlayerList(league_id=league_id, season=season, only_current=only_current) if params['function'] == 'info': temp = player_list.info() else: return [] elif params['sub_module'] == 'player_opponent_splits': op_splits = player.PlayerOpponentSplits(player_id, team_id=team_id, measure_type=measure_type, per_mode=per_mode, plus_minus=plus_minus, \ pace_adjust=pace_adjust, rank=rank, league_id=league_id, season=season, season_type=season_type, po_round=po_round, outcome=outcome, \ location=location, month=month, season_segment=season_segment, date_from=date_from, date_to=date_to, opponent_team_id=opponent_team_id, \ vs_conference=vs_conference, vs_division=vs_division, game_segment=game_segment, period=period, shot_clock_range=shot_clock_range, \ last_n_games=last_n_games ) if params['function'] == 'by_conference': temp = op_splits.by_conference() elif params['function'] == 'by_division': temp = op_splits.by_division() elif params['function'] == 'by_opponent': temp = op_splits.by_opponent() else: return [] elif params['sub_module'] == 'player_pass_tracking': pass_tracking = player.PlayerPassTracking(player_id, team_id=team_id, measure_type=measure_type, per_mode=per_mode, plus_minus=plus_minus, \ pace_adjust=pace_adjust, rank=rank, league_id=league_id, season=season, season_type=season_type, po_round=po_round, outcome=outcome, \ location=location, month=month, season_segment=season_segment, date_from=date_from, date_to=date_to, opponent_team_id=opponent_team_id, \ vs_conference=vs_conference, vs_division=vs_division, game_segment=game_segment, period=period, shot_clock_range=shot_clock_range, \ last_n_games=last_n_games ) if params['function'] == 'passes_made': temp = pass_tracking.passes_made() elif params['function'] == 'passes_received': temp = pass_tracking.passes_received() else: return [] elif params['sub_module'] == 'player_performance_splits': performance_splits = player.PlayerPerformanceSplits(player_id, team_id=team_id, measure_type=measure_type, per_mode=per_mode, plus_minus=plus_minus, \ pace_adjust=pace_adjust, rank=rank, league_id=league_id, season=season, season_type=season_type, po_round=po_round, outcome=outcome, \ location=location, month=month, season_segment=season_segment, date_from=date_from, date_to=date_to, opponent_team_id=opponent_team_id, \ vs_conference=vs_conference, vs_division=vs_division, game_segment=game_segment, period=period, shot_clock_range=shot_clock_range, \ last_n_games=last_n_games ) if params['function'] == 'points_against': temp = performance_splits.points_against() elif params['function'] == 'points_scored': temp = performance_splits.points_scored() elif params['function'] == 'score_differential': temp = performance_splits.score_differential() else: return [] elif params['sub_module'] == 'player_profile': prof = player.PlayerProfile(per_mode=per_mode, league_id=league_id) if params['function'] == 'career_highs': temp = prof.career_highs() elif params['function'] == 'next_game': temp = prof.next_game() elif params['function'] == 'season_highs': temp = prof.season_highs() else: return [] elif params['sub_module'] == 'player_rebound_log_tracking': temp = player.PlayerReboundLogTracking(player_id, team_id=team_id, measure_type=measure_type, per_mode=per_mode, plus_minus=plus_minus, \ pace_adjust=pace_adjust, rank=rank, league_id=league_id, season=season, season_type=season_type, po_round=po_round, outcome=outcome, \ location=location, month=month, season_segment=season_segment, date_from=date_from, date_to=date_to, opponent_team_id=opponent_team_id, \ vs_conference=vs_conference, vs_division=vs_division, game_segment=game_segment, period=period, shot_clock_range=shot_clock_range, \ last_n_games=last_n_games ) elif params['sub_module'] == 'player_rebound_tracking': rb_tracking = player.PlayerReboundTracking(player_id, team_id=team_id, measure_type=measure_type, per_mode=per_mode, plus_minus=plus_minus, \ pace_adjust=pace_adjust, rank=rank, league_id=league_id, season=season, season_type=season_type, po_round=po_round, outcome=outcome, \ location=location, month=month, season_segment=season_segment, date_from=date_from, date_to=date_to, opponent_team_id=opponent_team_id, \ vs_conference=vs_conference, vs_division=vs_division, game_segment=game_segment, period=period, shot_clock_range=shot_clock_range, \ last_n_games=last_n_games ) if params['function'] == 'num_contested_rebounding': temp = rb_tracking.num_contested_rebounding() elif params['function'] == 'rebound_distance_rebounding': temp = rb_tracking.rebound_distance_rebounding() elif params['function'] == 'shot_distance_rebounding': temp = rb_tracking.shot_distance_rebounding() elif params['function'] == 'shot_type_rebounding': temp = rb_tracking.shot_type_rebounding() else: return [] elif params['sub_module'] == 'player_shooting_splits': if params['function'] == 'assisted_by': temp = rb_tracking.assisted_by() elif params['function'] == 'assisted_shots': temp = rb_tracking.assisted_shots() elif params['function'] == 'shot_5ft': temp = rb_tracking.shot_5ft() elif params['function'] == 'shot_8ft': temp = rb_tracking.shot_8ft() elif params['function'] == 'shot_areas': temp = rb_tracking.shot_areas() elif params['function'] == 'shot_types_detail': temp = rb_tracking.shot_types_detail() elif params['function'] == 'shot_types_summary': temp = rb_tracking.shot_types_summary() else: return [] elif params['sub_module'] == 'player_shot_log_tracking': temp = player.PlayerShotLogTracking(player_id, team_id=team_id, measure_type=measure_type, per_mode=per_mode, plus_minus=plus_minus, \ pace_adjust=pace_adjust, rank=rank, league_id=league_id, season=season, season_type=season_type, po_round=po_round, outcome=outcome, \ location=location, month=month, season_segment=season_segment, date_from=date_from, date_to=date_to, opponent_team_id=opponent_team_id, \ vs_conference=vs_conference, vs_division=vs_division, game_segment=game_segment, period=period, shot_clock_range=shot_clock_range, \ last_n_games=last_n_games ) if params['function'] == 'closest_defender_shooting': temp = rb_tracking.closest_defender_shooting() elif params['function'] == 'closest_defender_shooting_long': temp = rb_tracking.closest_defender_shooting_long() elif params['function'] == 'dribble_shooting': temp = rb_tracking.dribble_shooting() elif params['function'] == 'general_shooting': temp = rb_tracking.general_shooting() elif params['function'] == 'shot_clock_shooting': temp = rb_tracking.shot_clock_shooting() elif params['function'] == 'touch_time_shooting': temp = rb_tracking.touch_time_shooting() else: return [] # elif params['sub_module'] == 'player_shot_tracking': # elif params['sub_module'] == 'player_summary': # elif params['sub_module'] == 'player_vs_player': # elif params['sub_module'] == 'player_year_over_year_splits': elif params['module'] == 'game': pass elif params['module'] == 'team': pass else: # Failure case. pass if flatten_keys: return [ l for l in list(set([el for o in temp for el in o.keys()])) if l not in to_remove ] else: return { 'data': [o[params['value_query']] for o in temp], 'labels': [o[get_x_axis_key(params['function'])] for o in temp] }
# # array of players as dictionaries # p_dict = p_df.T.to_dict().values() # ''' # {u'GAMES_PLAYED_FLAG': u'Y', u'DISPLAY_FIRST_LAST': u'Alex Abrines', u'TEAM_ABBREVIATION': u'OKC', u'TEAM_ID': 1610612760, u'TO_YEAR': u'2017', u'FROM_YEAR': u'2016', u'PLAYERCODE': u'alex_abrines', u'PERSON_ID': 203518, u'DISPLAY_LAST_COMMA_FIRST': u'Abrines, Alex', u'ROSTERSTATUS': 1, u'TEAM_CODE': u'thunder', u'TEAM_NAME': u'Thunder', u'TEAM_CITY': u'Oklahoma City'} # ''' # for p in p_dict[4:5]: # print p['PLAYERCODE'] # p_id = p['PERSON_ID'] # print player.PlayerCareer(p_id, per_mode='PerGame', league_id='00').regular_season_totals() # print player.PlayerGameLogs(p_id, league_id='00', season='2017-18', season_type='Regular Season').info() import nba_py from nba_py import player from nba_py import game # plist = nba_py.player.PlayerList(league_id='00', season='2017-18', only_current=1) p_df = plist.info() p_dict = p_df.T.to_dict().values() p = p_dict[10] p_id = p['PERSON_ID'] #print 'testing' game_log = player.PlayerGameLogs(p_id, league_id='00', season='2017-18', season_type='Regular Season').info() colnames = list(game_log.columns.values) print game_log.to_json(orient='records')
PTS PLUS_MINUS ''' bad_cols = ['MATCHUP', 'GAME_DATE', 'VIDEO_AVAILABLE'] print('\nQuerying Player Log Data...') start_time = time.time() playergame = pd.DataFrame() plyrs = player_list.index # Loop through players for i in range(plyrs.shape[0]): plyr = plyrs[i] data = player.PlayerGameLogs(plyr, season=season).info() data.drop(bad_cols, axis=1, inplace=True) playergame = playergame.append(data) if not i % 50 and i: print(' %.0f of %.0f Players complete' % (i, plyrs.shape[0])) print(' Number of rows Queried =', playergame.shape[0]) print(' Runtime (minutes) = %.2f' % ((time.time() - start_time) / 60)) playergame['SEASON_ID'] = seasonid playergame.to_csv('data/PlayerGameStats_' + str(seasonid) + '.csv', index=False)
from nba_py import team, player 202738 player.PlayerGameLogs(202738, league_id='00', season='2016-17', season_type='Playoffs') def gameLog(id): i=0 player_now = player.PlayerGameLogs(202738, league_id='00', season='2016-17', season_type='Playoffs') if(player_now): player_now = player_now.info() for row, column in player_now.iterrows(): player_now = player.PlayerGameLogs(id, league_id='00', season='2016-17', season_type='Regular Season') return player_now team_id = {"Atlanta Hawks":1610612737, "Boston Celtics": 1610612738, "Brooklyn Nets": 1610612751, \ "Charlotte Hornets" : 1610612766, "Chicago Bulls" : 1610612741, "Cleveland Cavaliers": 1610612739, \ "Dallas Mavericks" : 1610612742, "Denver Nuggets" : 1610612743, "Detroit Pistons" : 1610612765, \ "Golden State Warriors" : 1610612744, "Houston Rockets" : 1610612745, "Indiana Pacers": 1610612754, \ "Los Angeles Clippers" : 1610612746, "Los Angeles Lakers": 1610612747, "Memphis Grizzlies" : 1610612763, \ "Miami Heat" :1610612748, "Milwaukee Bucks" : 1610612749, "Minnesota Timberwolves" : 1610612750, \ "New Orleans Pelicans" : 1610612740, "New York Knicks": 1610612752, "Oklahoma City Thunder": 1610612760, \ "Orlando Magic" : 1610612753, "Philadelphia 76ers" : 1610612755, "Phoenix Suns" : 1610612756, \ "Portland Trail Blazers" : 1610612757, "Sacramento Kings" : 1610612758, "San Antonio Spurs" : 1610612759, \ "Toronto Raptors" : 1610612761, "Utah Jazz" : 1610612762, "Washington Wizards" : 1610612764 } players = player.PlayerList(league_id='00', season='2016-17', only_current=1)