Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
    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())
Ejemplo n.º 7
0
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']
Ejemplo n.º 9
0
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
Ejemplo n.º 10
0
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)
Ejemplo n.º 11
0
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)
Ejemplo n.º 12
0
    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)
Ejemplo n.º 13
0
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
Ejemplo n.º 15
0
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
Ejemplo n.º 16
0
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]
        }
Ejemplo n.º 17
0
# # 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')
Ejemplo n.º 18
0
        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)
Ejemplo n.º 19
0
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)