Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- import csv
- teams = ['CHI',
- 'COL',
- 'DAL',
- 'MIN',
- 'NSH',
- 'STL',
- 'WPG',
- 'ANA',
- 'CGY',
- 'EDM',
- 'LAK',
- 'PHX',
- 'SJS',
- 'VAN',
- 'BOS',
- 'BUF',
- 'DET',
- 'FLA',
- 'MTL',
- 'OTT',
- 'TBL',
- 'TOR',
- 'CAR',
- 'CBJ',
- 'NJD',
- 'NYR',
- 'NYI',
- 'PHI',
- 'PIT',
- 'WSH']
- krach = [100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100]
- new_krach = [100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100,
- 100]
- wins = [0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0]
- RRWP = [0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0]
- SOS = [0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0]
- GP = [0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0]
- games = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
- with open([put your game results csv filepath here], newline='') as results:
- game_result = csv.reader(results, delimiter=',')
- for row in game_result:
- if row[1] == 'Chicago Blackhawks':
- away = 0
- elif row[1] == 'Colorado Avalanche':
- away = 1
- elif row[1] == 'Dallas Stars':
- away = 2
- elif row[1] == 'Minnesota Wild':
- away = 3
- elif row[1] == 'Nashville Predators':
- away = 4
- elif row[1] == 'St. Louis Blues':
- away = 5
- elif row[1] == 'Winnipeg Jets':
- away = 6
- elif row[1] == 'Anaheim Ducks':
- away = 7
- elif row[1] == 'Calgary Flames':
- away = 8
- elif row[1] == 'Edmonton Oilers':
- away = 9
- elif row[1] == 'Los Angeles Kings':
- away = 10
- elif row[1] == 'Phoenix Coyotes':
- away = 11
- elif row[1] == 'San Jose Sharks':
- away = 12
- elif row[1] == 'Vancouver Canucks':
- away = 13
- elif row[1] == 'Boston Bruins':
- away = 14
- elif row[1] == 'Buffalo Sabres':
- away = 15
- elif row[1] == 'Detroit Red Wings':
- away = 16
- elif row[1] == 'Florida Panthers':
- away = 17
- elif row[1] == 'Montreal Canadiens':
- away = 18
- elif row[1] == 'Ottawa Senators':
- away = 19
- elif row[1] == 'Tampa Bay Lightning':
- away = 20
- elif row[1] == 'Toronto Maple Leafs':
- away = 21
- elif row[1] == 'Carolina Hurricanes':
- away = 22
- elif row[1] == 'Columbus Blue Jackets':
- away = 23
- elif row[1] == 'New Jersey Devils':
- away = 24
- elif row[1] == 'New York Rangers':
- away = 25
- elif row[1] == 'New York Islanders':
- away = 26
- elif row[1] == 'Philadelphia Flyers':
- away = 27
- elif row[1] == 'Pittsburgh Penguins':
- away = 28
- else:
- away = 29
- if row[3] == 'Chicago Blackhawks':
- home = 0
- elif row[3] == 'Colorado Avalanche':
- home = 1
- elif row[3] == 'Dallas Stars':
- home = 2
- elif row[3] == 'Minnesota Wild':
- home = 3
- elif row[3] == 'Nashville Predators':
- home = 4
- elif row[3] == 'St. Louis Blues':
- home = 5
- elif row[3] == 'Winnipeg Jets':
- home = 6
- elif row[3] == 'Anaheim Ducks':
- home = 7
- elif row[3] == 'Calgary Flames':
- home = 8
- elif row[3] == 'Edmonton Oilers':
- home = 9
- elif row[3] == 'Los Angeles Kings':
- home = 10
- elif row[3] == 'Phoenix Coyotes':
- home = 11
- elif row[3] == 'San Jose Sharks':
- home = 12
- elif row[3] == 'Vancouver Canucks':
- home = 13
- elif row[3] == 'Boston Bruins':
- home = 14
- elif row[3] == 'Buffalo Sabres':
- home = 15
- elif row[3] == 'Detroit Red Wings':
- home = 16
- elif row[3] == 'Florida Panthers':
- home = 17
- elif row[3] == 'Montreal Canadiens':
- home = 18
- elif row[3] == 'Ottawa Senators':
- home = 19
- elif row[3] == 'Tampa Bay Lightning':
- home = 20
- elif row[3] == 'Toronto Maple Leafs':
- home = 21
- elif row[3] == 'Carolina Hurricanes':
- home = 22
- elif row[3] == 'Columbus Blue Jackets':
- home = 23
- elif row[3] == 'New Jersey Devils':
- home = 24
- elif row[3] == 'New York Rangers':
- home = 25
- elif row[3] == 'New York Islanders':
- home = 26
- elif row[3] == 'Philadelphia Flyers':
- home = 27
- elif row[3] == 'Pittsburgh Penguins':
- home = 28
- else:
- home = 29
- if row[2] == row [4]:
- yep = 0
- else:
- games[home][away] = games[home][away] + 1
- games[away][home] = games[away][home] + 1
- GP[home] = GP[home] + 1
- GP[away] = GP[away] + 1
- if row[5] == 'SO':
- wins[away] = wins[away] + 0.5
- wins[home] = wins[home] + 0.5
- elif row[2] > row[4]:
- wins[away] = wins[away] + 1
- else:
- wins[home] = wins[home] + 1
- good = 0
- while good != 1:
- for team in range(30):
- sum = 0
- for opp in range(30):
- sum = sum + (krach[team]*games[team][opp])/(krach[team]+krach[opp])
- new_krach[team] = (wins[team]/sum)*krach[team]
- ratio = new_krach[team]/krach[team]
- abs_difference = math.fabs(1-ratio)
- if abs_difference <= 0.00001:
- good = 1
- else:
- good = 0
- krach[team] = new_krach[team]
- for int in range(10):
- scale_wins = 0
- for team in range(30):
- scale_wins = scale_wins + 100/(100 + krach[team])
- scale = scale_wins/15
- for team in range(30):
- krach[team] = krach[team] * scale
- for team in range(30):
- RRW = 0
- for opp in range(30):
- if team == opp:
- RRW = RRW
- else:
- RRW = RRW + krach[team]/(krach[team]+krach[opp])
- RRWP[team] = RRW/29
- SOS[team] = krach[team] * (GP[team] - wins[team])/wins[team]
- for row in range(30):
- print(teams[row],
- str(round(krach[row],2)).rjust(7),
- str(round(RRWP[row],4)).rjust(6),
- str(round(SOS[row],2)).rjust(7))
- output = open('[put your output filepath here]', 'w')
- for row in range(30):
- output.write(str(krach[row]))
- output.write('\n')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement