def show_season_table(db, player, stype, week_range=None, pos=None): if pos is None: pos = player.position _, cur_year, _ = nfldb.current(db) pstats = [] for year in range(2009, cur_year+1): qgames = nflcmd.query_games(db, player, year, stype, week_range) games = qgames.as_games() if len(games) == 0: continue game_stats = map(partial(nflcmd.Game.make, db, player), games) agg = qgames.sort([]).as_aggregate() pstats.append(nflcmd.Games(db, year, game_stats, agg[0])) spec = prefix_season + nflcmd.columns['season'][nflcmd.pcolumns[pos]] rows = [nflcmd.header_row(spec)] rows += map(partial(nflcmd.pstat_to_row, spec), pstats) if len(pstats) > 1: summary = nfldb.aggregate(pstat._pstat for pstat in pstats)[0] allrows = nflcmd.Games(db, '-', [], summary) allrows._fgs = [] for pstat in pstats: allrows._fgs += pstat.fgs allrows.games += pstat.games rows.append(nflcmd.pstat_to_row(spec, allrows)) print(nflcmd.table(rows))
def NOTUSED_recep_yds_per_third_down(db=db): '''returns most yards/attempt on third down''' q.game(season_year=2012, season_type='Regular') q.play(third_down_att=1) plays = q.as_plays() aggregated = nfldb.aggregate(plays) # returns a list of PlayPlayer objects. aggregated = sorted(aggregated, key=lambda p: p.receiving_tar, reverse=True) for pp in aggregated[0:10]: name = pp.player statement = '%s recep yds on 3rd down' % pp.receiving_yds attempts = 'on %s targets' % pp.receiving_tar average = '@ %.2f yds/target' % (float(pp.receiving_yds) / float(pp.receiving_tar)) comp_rate = '.recep rate: %.2f' % (100 *(float(pp.receiving_rec) / float(pp.receiving_tar))) + '%' print name, statement, attempts, average, comp_rate
def most_wr_third_down_yards(db=db, q=q): q.game(season_year=2012, season_type='Regular') q.play(third_down_att=1) plays = q.as_plays() aggregated = nfldb.aggregate(plays) aggregated = sorted(aggregated, key=lambda p: p.rushing_att, reverse=True) for pp in aggregated[0:5]: name = pp.player statement = 'rushed for %s yards on 3rd down' % pp.rushing_yds attempts = 'on %s attempts' % pp.rushing_att average = '@ %s yds/attempt' % (pp.rushing_yds / pp.rushing_att) print name, statement, attempts, average pass
def dep_rushing_yds_per_third_down(db=db): q = nfldb.Query(db) q.game(season_year=2012, season_type='Regular') q.play(third_down_att=1) plays = q.as_plays() aggregated = nfldb.aggregate(plays) aggregated = sorted(aggregated, key=lambda p: p.rushing_yds, reverse=True) for pp in aggregated[0:10]: name = pp.player statement = 'rushed for %s yds on 3rd down' % pp.rushing_yds attempts = 'on %s att' % pp.rushing_att average = '@ %.2f yds/att' % (float(pp.rushing_yds) / float(pp.rushing_att)) print name, statement, attempts, average pass
def most_yards_per_third_down(db=db, q=q): '''returns most yards/attempt on third down''' q.game(season_year=2012, season_type='Regular') q.play(third_down_att=1, passing_yds__ne=0) plays = q.as_plays() aggregated = nfldb.aggregate(plays) # returns a list of PlayPlayer objects. aggregated = sorted(aggregated, key=lambda p: p.passing_yds, reverse=True) for pp in aggregated[0:5]: #print pp.player, pp.passing_yds, pp.passing_att name = pp.player statement = 'threw for %s passing yards on 3rd down' % pp.passing_yds attempts = 'on %s attempts' % pp.passing_att average = '@ %s yds/attempt' % (pp.passing_yds / pp.passing_att) print name, statement, attempts, average
def most_yards_per_third_down(db=db, q=q): '''returns most yards/attempt on third down''' q.game(season_year=2012, season_type='Regular') q.play(third_down_att=1, passing_yds__ne=0) plays = q.as_plays() aggregated = nfldb.aggregate( plays) # returns a list of PlayPlayer objects. aggregated = sorted(aggregated, key=lambda p: p.passing_yds, reverse=True) for pp in aggregated[0:5]: #print pp.player, pp.passing_yds, pp.passing_att name = pp.player statement = 'threw for %s passing yards on 3rd down' % pp.passing_yds attempts = 'on %s attempts' % pp.passing_att average = '@ %s yds/attempt' % (pp.passing_yds / pp.passing_att) print name, statement, attempts, average
def passing_yds_per_third_down(db=db): q = nfldb.Query(db) '''returns most yards/attempt on third down''' q.game(season_year=2012, season_type='Regular') q.play(third_down_att=1) plays = q.as_plays() aggregated = nfldb.aggregate(plays) # returns a list of PlayPlayer objects. aggregated = sorted(aggregated, key=lambda p: p.passing_yds, reverse=True) for pp in aggregated[0:10]: #print pp.player, pp.passing_yds, pp.passing_att name = pp.player statement = 'threw for %s passing yds on 3rd down' % pp.passing_yds attempts = 'on %s att' % pp.passing_att average = '@ %.2f yds/att' % (float(pp.passing_yds) / float(pp.passing_att)) comp_rate = '.Comp rate: %.2f' % (100 *(float(pp.passing_cmp) / float(pp.passing_att))) + '%' print name, statement, attempts, average, comp_rate
def show_game_table(db, player, year, stype, week_range=None, pos=None): if pos is None: pos = player.position games = nflcmd.query_games(db, player, year, stype, week_range).as_games() pstats = map(partial(nflcmd.Game.make, db, player), games) spec = prefix_game + nflcmd.columns['game'][nflcmd.pcolumns[pos]] rows = [nflcmd.header_row(spec)] rows += map(partial(nflcmd.pstat_to_row, spec), pstats) if len(pstats) > 1: summary = nfldb.aggregate(pstat._pstat for pstat in pstats)[0] allrows = nflcmd.Game(db, None, '-', summary) allrows._fgs = [] for pstat in pstats: allrows._fgs += pstat.fgs rows.append(nflcmd.pstat_to_row(spec, allrows)) print(nflcmd.table(rows))
def NOTUSED_recep_yds_per_third_down(db=db): '''returns most yards/attempt on third down''' q.game(season_year=2012, season_type='Regular') q.play(third_down_att=1) plays = q.as_plays() aggregated = nfldb.aggregate( plays) # returns a list of PlayPlayer objects. aggregated = sorted(aggregated, key=lambda p: p.receiving_tar, reverse=True) for pp in aggregated[0:10]: name = pp.player statement = '%s recep yds on 3rd down' % pp.receiving_yds attempts = 'on %s targets' % pp.receiving_tar average = '@ %.2f yds/target' % (float(pp.receiving_yds) / float(pp.receiving_tar)) comp_rate = '.recep rate: %.2f' % ( 100 * (float(pp.receiving_rec) / float(pp.receiving_tar))) + '%' print name, statement, attempts, average, comp_rate
def passing_yds_per_third_down(db=db): q = nfldb.Query(db) '''returns most yards/attempt on third down''' q.game(season_year=2012, season_type='Regular') q.play(third_down_att=1) plays = q.as_plays() aggregated = nfldb.aggregate( plays) # returns a list of PlayPlayer objects. aggregated = sorted(aggregated, key=lambda p: p.passing_yds, reverse=True) for pp in aggregated[0:10]: #print pp.player, pp.passing_yds, pp.passing_att name = pp.player statement = 'threw for %s passing yds on 3rd down' % pp.passing_yds attempts = 'on %s att' % pp.passing_att average = '@ %.2f yds/att' % (float(pp.passing_yds) / float(pp.passing_att)) comp_rate = '.Comp rate: %.2f' % ( 100 * (float(pp.passing_cmp) / float(pp.passing_att))) + '%' print name, statement, attempts, average, comp_rate
import nfldb from scoring import Scoring scorer = Scoring() db = nfldb.connect() q = nfldb.Query(db).game(season_year=2013, season_type='Regular') # get game stats for game in q.as_games(): print game print game.week, game.home_team, game.home_score print game.week, game.away_team, game.away_score performances = nfldb.aggregate(game.play_players) for pp in performances: print pp.player.full_name, pp.player.position, scorer.get_score(pp) print