strip-stats/calculate_streaks.py

67 lines
2.4 KiB
Python

#!/usr/local/bin/python2
fields = {
'win_loss_streak',
'season_win_loss_streak',
'season_wins',
'season_losses',
'season_ties',
'season_points_for',
'season_points_against',
)
# Initialize hash
team_stats = {}
for team in enumerate(teams):
for field in enumerate(fields):
team_stats[team['code']][field] = 0;
for year in enumerate(years):
for week in enumerate(weeks):
if (week == 1):
team_stats[team_code]['season_win_loss_streak'] = 0
team_stats[team_code]['season_wins'] = 0
team_stats[team_code]['season_losses'] = 0
team_stats[team_code]['season_ties'] = 0
team_stats[team_code]['season_points_for'] = 0
team_stats[team_code]['season_points_against'] = 0
for game in enumerate(games):
for place in ('away', 'home'):
if (place == 'away'):
my = 'away'
their = 'home'
else:
my = 'home'
their = 'away'
point_diff = game[my + '_score'] - game[their + '_score']
win_loss_value = 0
if (point_diff < 0):
win_loss_value = -1;
else if(point_diff > 0):
win_loss_value = 1;
team_code = game[place + '_team']
if (team_stats[team_code]['win_loss_streak'] * win_loss_value < 0):
team_stats[team_code]['win_loss_streak'] = 0;
if (team_stats[team_code]['season_win_loss_streak'] * win_loss_value < 0):
team_stats[team_code]['season_win_loss_streak'] = 0;
team_stats[team_code]['win_loss_streak'] += win_loss_value
team_stats[team_code]['season_win_loss_streak'] += win_loss_value
if (win_loss_value == 1):
team_stats[team_code]['season_wins'] = team_stats[team_code]['season_wins'] + 1
else if (win_loss_value == -1):
team_stats[team_code]['season_losses'] = team_stats[team_code]['season_losses'] + 1
else:
team_stats[team_code]['season_ties'] = team_stats[team_code]['season_ties'] + 1
team_stats[team_code]['season_points_for'] += game[my + '_points']
team_stats[team_code]['season_points_against'] += game[their + '_points']