Spaces:
Runtime error
Runtime error
Upload 3 files
Browse files- app.py +249 -354
- team_abv.csv +1 -1
- yahoo_to_nhl.csv +805 -0
app.py
CHANGED
|
@@ -1,48 +1,29 @@
|
|
|
|
|
|
|
|
| 1 |
import requests
|
| 2 |
import pandas as pd
|
| 3 |
import seaborn as sns
|
| 4 |
import matplotlib.pyplot as plt
|
| 5 |
from matplotlib.pyplot import figure
|
| 6 |
from matplotlib.offsetbox import OffsetImage, AnnotationBbox
|
| 7 |
-
|
| 8 |
import matplotlib.lines as mlines
|
| 9 |
import matplotlib.transforms as mtransforms
|
| 10 |
import numpy as np
|
|
|
|
| 11 |
#import plotly.express as px
|
| 12 |
#!pip install chart_studio
|
| 13 |
-
#
|
| 14 |
-
|
| 15 |
import matplotlib.pyplot as plt
|
| 16 |
import numpy as np
|
| 17 |
import matplotlib.font_manager as font_manager
|
| 18 |
from datetime import datetime
|
| 19 |
import pytz
|
| 20 |
-
from
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
plt.style.use('fivethirtyeight')
|
| 25 |
-
sns.set_context("notebook")
|
| 26 |
-
import warnings
|
| 27 |
-
warnings.filterwarnings('ignore')
|
| 28 |
-
#from urllib.request import urlopen
|
| 29 |
-
import json
|
| 30 |
-
from datetime import date, timedelta
|
| 31 |
-
#import dataframe_image as dfi
|
| 32 |
-
#from os import listdir
|
| 33 |
-
#from os.path import isfile, join
|
| 34 |
-
import datetime
|
| 35 |
-
import seaborn as sns
|
| 36 |
-
import os
|
| 37 |
-
import calendar
|
| 38 |
-
#from IPython.display import display, HTML
|
| 39 |
-
import matplotlib.image as mpimg
|
| 40 |
-
#from skimage import io
|
| 41 |
-
#import difflib
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
from datetime import datetime
|
| 45 |
-
import pytz
|
| 46 |
datetime.now(pytz.timezone('US/Pacific')).strftime('%B %d, %Y')
|
| 47 |
# Configure Notebook
|
| 48 |
#%matplotlib inline
|
|
@@ -55,117 +36,43 @@ warnings.filterwarnings('ignore')
|
|
| 55 |
# import yahoo_oauth
|
| 56 |
import json
|
| 57 |
#import openpyxl
|
| 58 |
-
|
| 59 |
-
from
|
| 60 |
-
import
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
|
|
|
|
|
|
| 65 |
|
| 66 |
-
import
|
| 67 |
-
|
| 68 |
-
import
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 73 |
|
| 74 |
-
|
| 75 |
-
|
|
|
|
| 76 |
|
| 77 |
-
|
| 78 |
-
game_date = flatten([[x['gameDate'] for x in schedule['dates'][y]['games']] for y in range(0,len(schedule['dates']))])
|
| 79 |
-
game_home = flatten([[x['teams']['home']['team']['name'] for x in schedule['dates'][y]['games']] for y in range(0,len(schedule['dates']))])
|
| 80 |
-
game_away = flatten([[x['teams']['away']['team']['name'] for x in schedule['dates'][y]['games']] for y in range(0,len(schedule['dates']))])
|
| 81 |
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
schedule_df = schedule_df.replace('Montréal Canadiens','Montreal Canadiens')
|
| 85 |
-
schedule_df.head()
|
| 86 |
|
| 87 |
-
team_abv = pd.read_csv('team_abv.csv')
|
| 88 |
-
yahoo_weeks = pd.read_csv('yahoo_weeks.csv')
|
| 89 |
-
#yahoo_weeks['Number'] = yahoo_weeks['Number'].astype(int)
|
| 90 |
-
yahoo_weeks['Start'] = pd.to_datetime(yahoo_weeks['Start'])
|
| 91 |
-
yahoo_weeks['End'] = pd.to_datetime(yahoo_weeks['End'])
|
| 92 |
-
yahoo_weeks.head(5)
|
| 93 |
-
|
| 94 |
-
def highlight_cols(s):
|
| 95 |
-
color = '#C2FEE9'
|
| 96 |
-
return 'background-color: %s' % color
|
| 97 |
-
def highlight_cells(val):
|
| 98 |
-
color = 'white' if val == ' ' else ''
|
| 99 |
-
return 'background-color: {}'.format(color)
|
| 100 |
|
| 101 |
-
import matplotlib.pyplot as plt
|
| 102 |
-
import matplotlib.colors
|
| 103 |
-
cmap_total = matplotlib.colors.LinearSegmentedColormap.from_list("", ["#56B4E9","#FFFFFF","#F0E442"])
|
| 104 |
-
cmap_off = matplotlib.colors.LinearSegmentedColormap.from_list("", ["#FFFFFF","#F0E442"])
|
| 105 |
-
cmap_back = matplotlib.colors.LinearSegmentedColormap.from_list("", ["#FFFFFF","#56B4E9"])
|
| 106 |
-
cmap_sum = matplotlib.colors.LinearSegmentedColormap.from_list("", ["#FFFFFF","#F0E442"])
|
| 107 |
-
|
| 108 |
-
schedule_df = schedule_df.merge(right=team_abv,left_on='game_away',right_on='team_name',how='inner',suffixes=['','_away'])
|
| 109 |
-
schedule_df = schedule_df.merge(right=team_abv,left_on='game_home',right_on='team_name',how='inner',suffixes=['','_home'])
|
| 110 |
-
schedule_df['away_sym'] = '@'
|
| 111 |
-
schedule_df['home_sym'] = 'vs'
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
#if not os.path.isfile('standings/standings_'+str(date.today())+'.csv'):
|
| 115 |
-
standings_df_old = pd.read_html('https://www.hockey-reference.com/leagues/NHL_2023_standings.html')[0].append(pd.read_html('https://www.hockey-reference.com/leagues/NHL_2023_standings.html')[1])
|
| 116 |
-
# standings_df_old.to_csv('standings/standings_'+str(date.today())+'.csv')
|
| 117 |
-
#standings_df_old = pd.read_csv('standings/standings_'+str(date.today())+'.csv',index_col=[0])
|
| 118 |
-
|
| 119 |
-
standings_df = standings_df_old[standings_df_old['Unnamed: 0'].str[-8:] != 'Division'].sort_values('Unnamed: 0').reset_index(drop=True).rename(columns={'Unnamed: 0':'Team'})#.drop(columns='Unnamed: 0')
|
| 120 |
-
#standings_df = standings_df.replace('St. Louis Blues','St Louis Blues')
|
| 121 |
-
standings_df['GF/GP'] = standings_df['GF'].astype(int)/standings_df['GP'].astype(int)
|
| 122 |
-
standings_df['GA/GP'] = standings_df['GA'].astype(int)/standings_df['GP'].astype(int)
|
| 123 |
-
standings_df['GF_Rank'] = standings_df['GF/GP'].rank(ascending=True,method='first')/10-1.65
|
| 124 |
-
standings_df['GA_Rank'] = standings_df['GA/GP'].rank(ascending=False,method='first')/10-1.65
|
| 125 |
-
standings_df.Team = standings_df.Team.str.strip('*')
|
| 126 |
-
standings_df = standings_df.merge(right=team_abv,left_on='Team',right_on='team_name')
|
| 127 |
-
|
| 128 |
-
schedule_stack = pd.DataFrame()
|
| 129 |
-
schedule_stack['date'] = pd.to_datetime(list(schedule_df['game_date'])+list(schedule_df['game_date']))
|
| 130 |
-
schedule_stack['team'] = list(schedule_df['team_name'])+list(schedule_df['team_name_home'])
|
| 131 |
-
schedule_stack['team_abv'] = list(schedule_df['team_abv'])+list(schedule_df['team_abv_home'])
|
| 132 |
-
schedule_stack['symbol'] = list(schedule_df['away_sym'])+list(schedule_df['home_sym'])
|
| 133 |
-
schedule_stack['team_opponent'] = list(schedule_df['team_name_home'])+list(schedule_df['team_name'])
|
| 134 |
-
schedule_stack['team_abv_home'] = list(schedule_df['team_abv_home'])+list(schedule_df['team_abv'])
|
| 135 |
-
schedule_stack = schedule_stack.merge(right=standings_df[['team_abv','GF_Rank']],left_on='team_abv',right_on='team_abv',how='inner',suffixes=("",'_y'))
|
| 136 |
-
schedule_stack = schedule_stack.merge(right=standings_df[['team_abv','GA_Rank']],left_on='team_abv_home',right_on='team_abv',how='inner',suffixes=("",'_y'))
|
| 137 |
-
|
| 138 |
-
schedule_stack = schedule_stack.merge(right=standings_df[['team_abv','GF_Rank']],left_on='team_abv',right_on='team_abv',how='inner',suffixes=("",'_y'))
|
| 139 |
-
schedule_stack = schedule_stack.merge(right=standings_df[['team_abv','GA_Rank']],left_on='team_abv_home',right_on='team_abv',how='inner',suffixes=("",'_y'))
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
list_o = schedule_stack.sort_values(['team','date'],ascending=[True,True]).reset_index(drop=True)
|
| 143 |
-
new_list = [x - y for x, y in zip(list_o['date'][1:], list_o['date'])]
|
| 144 |
-
b2b_list = [0] + [x.days for x in new_list]
|
| 145 |
-
b2b_list = [1 if x==1 else 0 for x in b2b_list]
|
| 146 |
-
test = list(schedule_stack.groupby(by='date').count()['team'])
|
| 147 |
-
offnight = [1 if x<15 else 0 for x in test]
|
| 148 |
-
offnight_df = pd.DataFrame({'date':schedule_stack.sort_values('date').date.unique(),'offnight':offnight}).sort_values('date').reset_index(drop=True)
|
| 149 |
-
schedule_stack = schedule_stack.merge(right=offnight_df,left_on='date',right_on='date',how='right')
|
| 150 |
-
schedule_stack = schedule_stack.sort_values(['team','date'],ascending=[True,True]).reset_index(drop=True)
|
| 151 |
-
schedule_stack['b2b'] = b2b_list
|
| 152 |
-
|
| 153 |
-
schedule_stack.date = pd.to_datetime(schedule_stack.date)
|
| 154 |
-
|
| 155 |
-
away_b2b = []
|
| 156 |
-
home_b2b = []
|
| 157 |
-
for i in range(0,len(schedule_stack)):
|
| 158 |
-
away_b2b.append(schedule_stack[(schedule_stack.date[i]==schedule_stack.date)&(schedule_stack.team_opponent[i]==schedule_stack.team)].reset_index(drop=True)['b2b'][0])
|
| 159 |
-
home_b2b.append(schedule_stack[(schedule_stack.date[i]==schedule_stack.date)&(schedule_stack.team[i]==schedule_stack.team)].reset_index(drop=True)['b2b'][0])
|
| 160 |
-
|
| 161 |
-
schedule_stack['away_b2b'] = away_b2b
|
| 162 |
-
schedule_stack['home_b2b'] = home_b2b
|
| 163 |
-
|
| 164 |
-
schedule_stack['away_b2b'] = schedule_stack['away_b2b'].replace(1,' 😴')
|
| 165 |
-
schedule_stack['away_b2b'] = schedule_stack['away_b2b'].replace(0,'')
|
| 166 |
-
schedule_stack.head()
|
| 167 |
-
|
| 168 |
-
FontProperties(fname='/System/Library/Fonts/Apple Color Emoji.ttc')
|
| 169 |
try:
|
| 170 |
data_r = requests.get("https://pub-api-ro.fantasysports.yahoo.com/fantasy/v2/league/427.l.public;out=settings/players;position=ALL;start=0;count=3000;sort=rank_season;search=;out=percent_owned;out=auction_values,ranks;ranks=season;ranks_by_position=season;out=expert_ranks;expert_ranks.rank_type=projected_season_remaining/draft_analysis;cut_types=diamond;slices=last7days?format=json_f").json()
|
| 171 |
key_check = data_r['fantasy_content']['league']['players']
|
|
@@ -186,7 +93,6 @@ for x in data_r['fantasy_content']['league']['players']:
|
|
| 186 |
single_list.append(x['player']['name']['last'])
|
| 187 |
single_list.append(x['player']['draft_analysis']['average_pick'])
|
| 188 |
single_list.append(x['player']['average_auction_cost'])
|
| 189 |
-
single_list.append(x['player']['projected_auction_value'])
|
| 190 |
single_list.append(x['player']['display_position'])
|
| 191 |
single_list.append(x['player']['editorial_team_abbr'])
|
| 192 |
if 'value' in x['player']['percent_owned']:
|
|
@@ -196,274 +102,265 @@ for x in data_r['fantasy_content']['league']['players']:
|
|
| 196 |
total_list.append(single_list)
|
| 197 |
|
| 198 |
|
| 199 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 200 |
|
| 201 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 202 |
|
| 203 |
from shiny import ui, render, App
|
| 204 |
import matplotlib.image as mpimg
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
|
| 208 |
-
|
| 209 |
-
|
| 210 |
-
# ui.panel_sidebar(
|
| 211 |
-
# ui.input_select("id", "Select Batter",batter_dict),
|
| 212 |
-
|
| 213 |
-
# ui.input_select("plot_id", "Select Plot",{'scatter':'Scatter Plot','dist':'Distribution Plot'})))
|
| 214 |
-
# ,
|
| 215 |
-
|
| 216 |
-
# ui.panel_main(ui.output_plot("plot",height = "750px",width="1250px")),
|
| 217 |
-
# #ui.download_button('test','Download'),
|
| 218 |
-
# )
|
| 219 |
-
app_ui = ui.page_fluid(ui.layout_sidebar(
|
| 220 |
-
# Available themes:
|
| 221 |
-
# cerulean, cosmo, cyborg, darkly, flatly, journal, litera, lumen, lux,
|
| 222 |
-
# materia, minty, morph, pulse, quartz, sandstone, simplex, sketchy, slate,
|
| 223 |
-
# solar, spacelab, superhero, united, vapor, yeti, zephyr
|
| 224 |
-
|
| 225 |
ui.panel_sidebar(
|
| 226 |
-
|
| 227 |
-
|
| 228 |
-
|
| 229 |
-
|
| 230 |
-
|
| 231 |
-
|
| 232 |
-
|
| 233 |
-
|
| 234 |
ui.panel_main(ui.tags.h3(""),
|
| 235 |
ui.div({"style": "font-size:2em;"},ui.output_text("txt_title")),
|
| 236 |
#ui.tags.h2("Fantasy Hockey Schedule Summary"),
|
| 237 |
-
ui.tags.h5("Created By: @TJStats, Data:
|
| 238 |
ui.div({"style": "font-size:1.2em;"},ui.output_text("txt")),
|
| 239 |
-
ui.output_table("
|
| 240 |
-
ui.tags.h5('Legend'),
|
| 241 |
-
|
| 242 |
-
ui.tags.h6('
|
| 243 |
-
|
| 244 |
-
|
| 245 |
-
|
| 246 |
-
# ui.row(
|
| 247 |
-
# ui.column(
|
| 248 |
-
# 3,
|
| 249 |
-
# ui.input_date("x", "Date input"),),
|
| 250 |
-
# ui.column(
|
| 251 |
-
# 1,
|
| 252 |
-
# ui.input_select("level_id", "Select Level",level_dict,width=1)),
|
| 253 |
-
# ui.column(
|
| 254 |
-
# 3,
|
| 255 |
-
# ui.input_select("stat_id", "Select Stat",plot_dict_small,width=1)),
|
| 256 |
-
# ui.column(
|
| 257 |
-
# 2,
|
| 258 |
-
# ui.input_numeric("n", "Rolling Window Size", value=50)),
|
| 259 |
-
# ),
|
| 260 |
-
# ui.output_table("result_batters")),
|
| 261 |
-
|
| 262 |
-
# ui.nav(
|
| 263 |
-
# "Pitchers",
|
| 264 |
-
|
| 265 |
-
# ui.row(
|
| 266 |
-
# ui.column(
|
| 267 |
-
# 3,
|
| 268 |
-
# ui.input_select("id_pitch", "Select Pitcher",pitcher_dict,width=1,selected=675911),
|
| 269 |
-
# ),
|
| 270 |
-
# ui.column(
|
| 271 |
-
# 1,
|
| 272 |
-
# ui.input_select("level_id_pitch", "Select Level",level_dict,width=1)),
|
| 273 |
-
# ui.column(
|
| 274 |
-
# 3,
|
| 275 |
-
# ui.input_select("stat_id_pitch", "Select Stat",plot_dict_small_pitch,width=1)),
|
| 276 |
-
# ui.column(
|
| 277 |
-
# 2,
|
| 278 |
-
# ui.input_numeric("n_pitch", "Rolling Window Size", value=50)),
|
| 279 |
-
# ),
|
| 280 |
-
# ui.output_table("result_pitchers")),
|
| 281 |
-
# )
|
| 282 |
-
# )
|
| 283 |
-
# )
|
| 284 |
|
| 285 |
|
| 286 |
|
| 287 |
|
| 288 |
from urllib.request import Request, urlopen
|
|
|
|
|
|
|
| 289 |
# importing OpenCV(cv2) module
|
| 290 |
|
| 291 |
|
| 292 |
|
| 293 |
|
|
|
|
| 294 |
def server(input, output, session):
|
| 295 |
|
|
|
|
| 296 |
@output
|
| 297 |
@render.text
|
| 298 |
def txt():
|
| 299 |
-
|
| 300 |
-
|
| 301 |
-
if week_set != 0:
|
| 302 |
-
if pd.to_datetime(yahoo_weeks[yahoo_weeks.Number == week_set]['Start'].values[0]).year != pd.to_datetime(yahoo_weeks[yahoo_weeks.Number == week_set]['End'].values[0]).year:
|
| 303 |
-
|
| 304 |
-
return f'{pd.to_datetime(yahoo_weeks[yahoo_weeks.Number == week_set]["Start"].values[0]).strftime("%B %d, %Y")} to {pd.to_datetime(yahoo_weeks[yahoo_weeks.Number == week_set]["End"].values[0]).strftime("%B %d, %Y")}'
|
| 305 |
-
else:
|
| 306 |
-
if pd.to_datetime(yahoo_weeks[yahoo_weeks.Number == week_set]["Start"].values[0]).month != pd.to_datetime(yahoo_weeks[yahoo_weeks.Number == week_set]["End"].values[0]).month:
|
| 307 |
-
return f'{pd.to_datetime(yahoo_weeks[yahoo_weeks.Number == week_set]["Start"].values[0]).strftime("%B %d")} to {pd.to_datetime(yahoo_weeks[yahoo_weeks.Number == week_set]["End"].values[0]).strftime("%B %d, %Y")}'
|
| 308 |
-
else:
|
| 309 |
-
return f'{pd.to_datetime(yahoo_weeks[yahoo_weeks.Number == week_set]["Start"].values[0]).strftime("%B %d")} to {pd.to_datetime(yahoo_weeks[yahoo_weeks.Number == week_set]["End"].values[0]).strftime("%d, %Y")}'
|
| 310 |
-
else:
|
| 311 |
-
if input.date_range_id()[0].year != input.date_range_id()[1].year:
|
| 312 |
-
|
| 313 |
-
return f'{input.date_range_id()[0].strftime("%B %d, %Y")} to {input.date_range_id()[1].strftime("%B %d, %Y")}'
|
| 314 |
-
else:
|
| 315 |
-
if input.date_range_id()[0].month != input.date_range_id()[1].month:
|
| 316 |
-
return f'{input.date_range_id()[0].strftime("%B %d")} to {input.date_range_id()[1].strftime("%B %d, %Y")}'
|
| 317 |
-
else:
|
| 318 |
-
return f'{input.date_range_id()[0].strftime("%B %d")} to {input.date_range_id()[1].strftime("%d, %Y")}'
|
| 319 |
-
|
| 320 |
-
|
| 321 |
@output
|
| 322 |
@render.text
|
| 323 |
def txt_title():
|
| 324 |
-
|
| 325 |
-
|
| 326 |
-
return f'Fantasy Hockey Schedule Summary - Yahoo - Week {input.week_id()}'
|
| 327 |
-
else:
|
| 328 |
-
return f'Fantasy Hockey Schedule Summary'
|
| 329 |
-
|
| 330 |
-
@output
|
| 331 |
-
@render.table
|
| 332 |
-
def result():
|
| 333 |
-
#print(yahoo_weeks)
|
| 334 |
-
return yahoo_weeks[['Week','Start','End']]
|
| 335 |
-
|
| 336 |
-
@output
|
| 337 |
-
@render.table
|
| 338 |
-
def schedule_result():
|
| 339 |
-
|
| 340 |
-
|
| 341 |
-
week_set = int(input.week_id())
|
| 342 |
-
print(week_set)
|
| 343 |
|
| 344 |
-
if week_set == 0:
|
| 345 |
-
start_point = input.date_range_id()[0]
|
| 346 |
-
end_point = input.date_range_id()[1]
|
| 347 |
-
else:
|
| 348 |
-
start_point = yahoo_weeks[yahoo_weeks.Number==week_set].reset_index(drop=True)['Start'][0]
|
| 349 |
-
end_point = yahoo_weeks[yahoo_weeks.Number==week_set].reset_index(drop=True)['End'][0]
|
| 350 |
|
| 351 |
|
| 352 |
-
sort_value='Score'
|
| 353 |
-
ascend=False
|
| 354 |
-
|
| 355 |
-
weekly_stack = schedule_stack[(schedule_stack['date'].dt.date>=start_point)&(schedule_stack['date'].dt.date<=end_point)]
|
| 356 |
-
date_list = pd.date_range(start_point,end_point,freq='d')
|
| 357 |
-
test_list = [[]] * len(date_list)
|
| 358 |
|
| 359 |
|
|
|
|
|
|
|
|
|
|
| 360 |
|
| 361 |
-
|
| 362 |
-
|
| 363 |
-
|
| 364 |
-
|
| 365 |
|
|
|
|
|
|
|
| 366 |
|
| 367 |
-
|
| 368 |
-
|
| 369 |
-
test_df['Total'] = test_df.merge(right=weekly_stack.groupby('team_abv')['team_abv'].apply(lambda x: x[x != ''].count()),left_on=['Team'],right_index=True,how='left').fillna(0)['team_abv']
|
| 370 |
-
test_df['Off-Night'] = test_df.merge(right=weekly_stack.groupby('team_abv').sum()['offnight'],left_on=['Team'],right_index=True,how='left').fillna(0)['offnight']
|
| 371 |
-
test_df['B2B']= test_df.merge(right=weekly_stack.groupby('team_abv').sum()['b2b'],left_on=['Team'],right_index=True,how='left').fillna(0)['b2b']
|
| 372 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 373 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 374 |
|
| 375 |
-
|
| 376 |
-
|
| 377 |
|
|
|
|
|
|
|
|
|
|
| 378 |
|
| 379 |
-
#games_vs_tired = np.array([float(i)*0.4 for i in list(weekly_stack.groupby('team_abv')['away_b2b'].apply(lambda x: x[x != ''].count()))])
|
| 380 |
|
| 381 |
-
|
|
|
|
|
|
|
| 382 |
|
|
|
|
|
|
|
| 383 |
|
| 384 |
-
team_score = test_df['Total']+test_df['Off-Night']*0.5+test_df['B2B']*-0.2+games_vs_tired*0.3+gf_rank*0.1+ga_rank*0.1
|
| 385 |
|
| 386 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 387 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 388 |
|
| 389 |
-
|
| 390 |
-
|
| 391 |
-
|
| 392 |
-
|
| 393 |
|
| 394 |
-
|
|
|
|
| 395 |
|
| 396 |
-
|
| 397 |
-
test_df[calendar.day_name[date_list[i].weekday()]+'<br>'+str(date_list[i].month)+'-'+'{:02d}'.format(date_list[i].day)] = test_list[i]['new_text']
|
| 398 |
|
| 399 |
-
|
| 400 |
-
|
| 401 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 402 |
|
| 403 |
-
|
|
|
|
|
|
|
| 404 |
|
| 405 |
-
|
| 406 |
-
#test_df_html = HTML( test_df.to_html().replace("\\n","<br>") )
|
| 407 |
-
offnight_list = [True if x <8 else False for x in test_df.iloc[-1][L:]]
|
| 408 |
|
| 409 |
-
test_df.style.applymap(highlight_cols,subset = ((list(test_df.index[:-1]),test_df.columns[L:][offnight_list])))
|
| 410 |
-
test_df_style = test_df.style.set_properties(**{'border': '3 px'},overwrite=False).set_table_styles([{
|
| 411 |
-
'selector': 'caption',
|
| 412 |
-
'props': [
|
| 413 |
-
('color', ''),
|
| 414 |
-
('fontname', 'Century Gothic'),
|
| 415 |
-
('font-size', '20px'),
|
| 416 |
-
('font-style', 'italic'),
|
| 417 |
-
('font-weight', ''),
|
| 418 |
-
('text-align', 'centre'),
|
| 419 |
-
]
|
| 420 |
|
| 421 |
-
|
| 422 |
-
|
| 423 |
-
**{'background-color':'White','index':'White','min-width':'100px'},overwrite=False,subset = ((list(test_df.index[:]),test_df.columns[5:]))).set_table_styles(
|
| 424 |
-
[{'selector': 'th:first-child', 'props': [('background-color', 'white')]}],overwrite=False).set_table_styles(
|
| 425 |
-
[{'selector': 'tr:first-child', 'props': [('background-color', 'white')]}],overwrite=False).set_table_styles(
|
| 426 |
-
[{'selector': 'tr', 'props': [('line-height', '20px')]}],overwrite=False).set_properties(
|
| 427 |
-
**{'Height': '8px'},**{'text-align': 'center'},overwrite=False).hide_index()
|
| 428 |
|
| 429 |
-
test_df_style = test_df_style.applymap(highlight_cols,subset = ((list(test_df.index[:-1]),test_df.columns[L:][offnight_list])))
|
| 430 |
|
| 431 |
-
|
| 432 |
-
|
| 433 |
-
|
| 434 |
-
|
| 435 |
-
test_df_style = test_df_style.background_gradient(cmap=cmap_back,subset = ((list(test_df.index[:-1]),test_df.columns[4])))
|
| 436 |
-
test_df_style = test_df_style.background_gradient(cmap=cmap_sum,subset = ((list(test_df.index[-1:]),test_df.columns[L:])),axis=1)
|
| 437 |
-
test_df_style = test_df_style.set_properties(
|
| 438 |
-
**{'border': '1px black solid !important'},subset = ((list(test_df.index[:-1]),test_df.columns[:]))).set_properties(
|
| 439 |
-
**{'min-width':'85px'},subset = ((list(test_df.index[:-1]),test_df.columns[L:])),overwrite=False).set_properties(**{
|
| 440 |
-
'color': 'black'},overwrite=False).set_properties(
|
| 441 |
-
**{'border': '1px black solid !important'},subset = ((list(test_df.index[:]),test_df.columns[L:])))
|
| 442 |
|
| 443 |
-
|
| 444 |
-
|
| 445 |
|
| 446 |
-
test_df_style = test_df_style.format(
|
| 447 |
-
'{:.1f}',subset=(test_df.index[:-1],test_df.columns[0]))
|
| 448 |
|
|
|
|
| 449 |
|
| 450 |
-
|
| 451 |
-
return test_df_style
|
| 452 |
|
|
|
|
|
|
|
| 453 |
|
| 454 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 455 |
|
| 456 |
-
|
| 457 |
-
|
| 458 |
-
|
| 459 |
-
|
| 460 |
-
|
| 461 |
-
|
| 462 |
-
def schedule_result_legend():
|
| 463 |
|
| 464 |
-
|
| 465 |
-
#off_b2b_df.style.applymap(highlight_cols,subset = ((list(off_b2b_df.index[:-1]),off_b2b_df.columns[0])))
|
| 466 |
-
off_b2b_df_style = off_b2b_df.style.set_properties(**{'border': '3 px'},overwrite=False).set_table_styles([{
|
| 467 |
'selector': 'caption',
|
| 468 |
'props': [
|
| 469 |
('color', ''),
|
|
@@ -474,26 +371,24 @@ def server(input, output, session):
|
|
| 474 |
('text-align', 'centre'),
|
| 475 |
]
|
| 476 |
|
| 477 |
-
},{'selector' :'th', 'props':[('text-align', 'center'),('Height','px'),('color','black'),(
|
| 478 |
-
|
| 479 |
-
**{'background-color':'White','index':'White','min-width':'150px'},overwrite=False).set_table_styles(
|
| 480 |
[{'selector': 'th:first-child', 'props': [('background-color', 'white')]}],overwrite=False).set_table_styles(
|
| 481 |
[{'selector': 'tr:first-child', 'props': [('background-color', 'white')]}],overwrite=False).set_table_styles(
|
| 482 |
[{'selector': 'tr', 'props': [('line-height', '20px')]}],overwrite=False).set_properties(
|
| 483 |
-
**{'Height': '8px'},**{'text-align': 'center'},overwrite=False).
|
| 484 |
-
|
| 485 |
-
|
| 486 |
-
|
| 487 |
-
|
| 488 |
-
|
| 489 |
-
|
| 490 |
-
|
| 491 |
-
**{'border': '1px black solid !important'},subset = ((list(off_b2b_df.index[:]),off_b2b_df.columns[:])))
|
| 492 |
-
|
| 493 |
-
return off_b2b_df_style
|
| 494 |
|
| 495 |
|
| 496 |
|
|
|
|
|
|
|
| 497 |
|
| 498 |
|
| 499 |
|
|
|
|
| 1 |
+
print('Running')
|
| 2 |
+
import time
|
| 3 |
import requests
|
| 4 |
import pandas as pd
|
| 5 |
import seaborn as sns
|
| 6 |
import matplotlib.pyplot as plt
|
| 7 |
from matplotlib.pyplot import figure
|
| 8 |
from matplotlib.offsetbox import OffsetImage, AnnotationBbox
|
| 9 |
+
from scipy import stats
|
| 10 |
import matplotlib.lines as mlines
|
| 11 |
import matplotlib.transforms as mtransforms
|
| 12 |
import numpy as np
|
| 13 |
+
import time
|
| 14 |
#import plotly.express as px
|
| 15 |
#!pip install chart_studio
|
| 16 |
+
#import chart_studio.tools as tls
|
| 17 |
+
from bs4 import BeautifulSoup
|
| 18 |
import matplotlib.pyplot as plt
|
| 19 |
import numpy as np
|
| 20 |
import matplotlib.font_manager as font_manager
|
| 21 |
from datetime import datetime
|
| 22 |
import pytz
|
| 23 |
+
from matplotlib.ticker import MaxNLocator
|
| 24 |
+
from matplotlib.patches import Ellipse
|
| 25 |
+
import matplotlib.transforms as transforms
|
| 26 |
+
from matplotlib.gridspec import GridSpec
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 27 |
datetime.now(pytz.timezone('US/Pacific')).strftime('%B %d, %Y')
|
| 28 |
# Configure Notebook
|
| 29 |
#%matplotlib inline
|
|
|
|
| 36 |
# import yahoo_oauth
|
| 37 |
import json
|
| 38 |
#import openpyxl
|
| 39 |
+
from sklearn import preprocessing
|
| 40 |
+
from datetime import timedelta
|
| 41 |
+
import dataframe_image as dfi
|
| 42 |
+
# from google.colab import drive
|
| 43 |
+
def percentile(n):
|
| 44 |
+
def percentile_(x):
|
| 45 |
+
return np.percentile(x, n)
|
| 46 |
+
percentile_.__name__ = 'percentile_%s' % n
|
| 47 |
+
return percentile_
|
| 48 |
|
| 49 |
+
import os
|
| 50 |
+
import praw
|
| 51 |
+
import matplotlib.pyplot as plt
|
| 52 |
+
import matplotlib.colors
|
| 53 |
+
import matplotlib.colors as mcolors
|
| 54 |
+
cmap_sum = matplotlib.colors.LinearSegmentedColormap.from_list("", ["#4285f4","#FFFFFF","#F0E442"])
|
| 55 |
+
#import pybaseball
|
| 56 |
+
import math
|
| 57 |
+
import matplotlib.ticker as mtick
|
| 58 |
+
import matplotlib.ticker as ticker
|
| 59 |
+
|
| 60 |
+
colour_palette = ['#FFB000','#648FFF','#785EF0',
|
| 61 |
+
'#DC267F','#FE6100','#3D1EB2','#894D80','#16AA02','#B5592B','#A3C1ED']
|
| 62 |
+
import matplotlib.colors as mcolors
|
| 63 |
+
from matplotlib.ticker import FuncFormatter
|
| 64 |
+
from matplotlib.font_manager import FontProperties
|
| 65 |
|
| 66 |
+
import numpy as np
|
| 67 |
+
import matplotlib.pyplot as plt
|
| 68 |
+
import matplotlib.colors
|
| 69 |
|
| 70 |
+
#x,y,c = zip(*np.random.rand(30,3)*4-2)
|
|
|
|
|
|
|
|
|
|
| 71 |
|
| 72 |
+
#norm=plt.Normalize(-2,2)
|
| 73 |
+
co = matplotlib.colors.LinearSegmentedColormap.from_list("", ["#ffffff","#F0E442"])
|
|
|
|
|
|
|
| 74 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 75 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 76 |
try:
|
| 77 |
data_r = requests.get("https://pub-api-ro.fantasysports.yahoo.com/fantasy/v2/league/427.l.public;out=settings/players;position=ALL;start=0;count=3000;sort=rank_season;search=;out=percent_owned;out=auction_values,ranks;ranks=season;ranks_by_position=season;out=expert_ranks;expert_ranks.rank_type=projected_season_remaining/draft_analysis;cut_types=diamond;slices=last7days?format=json_f").json()
|
| 78 |
key_check = data_r['fantasy_content']['league']['players']
|
|
|
|
| 93 |
single_list.append(x['player']['name']['last'])
|
| 94 |
single_list.append(x['player']['draft_analysis']['average_pick'])
|
| 95 |
single_list.append(x['player']['average_auction_cost'])
|
|
|
|
| 96 |
single_list.append(x['player']['display_position'])
|
| 97 |
single_list.append(x['player']['editorial_team_abbr'])
|
| 98 |
if 'value' in x['player']['percent_owned']:
|
|
|
|
| 102 |
total_list.append(single_list)
|
| 103 |
|
| 104 |
|
| 105 |
+
yahoo_df = pd.DataFrame(total_list,columns = ['player_id','rank_value','full','first','last','average_pick','average_auction_cost','display_position','editorial_team_abbr','percent_owned'])
|
| 106 |
+
yahoo_df_2 = yahoo_df.copy()
|
| 107 |
+
|
| 108 |
+
# Write your code here.
|
| 109 |
+
response = requests.get("https://www.naturalstattrick.com/playerlist.php?fromseason=20232024&thruseason=20232024&stype=2&sit=all&stdoi=oi&rate=n")
|
| 110 |
+
soup = BeautifulSoup(response.text, 'html.parser')
|
| 111 |
+
table_rows = soup.findAll('tr')
|
| 112 |
+
table_rows = table_rows[1:-1]
|
| 113 |
+
table_rows[0].findAll('td')
|
| 114 |
+
|
| 115 |
+
player_name = []
|
| 116 |
+
player_position = []
|
| 117 |
+
player_team = []
|
| 118 |
+
player_id = []
|
| 119 |
+
|
| 120 |
+
for i in range(0,len(table_rows)-1):
|
| 121 |
+
player_name.append(str(table_rows[i].findAll('td')[0].contents[0]))
|
| 122 |
+
player_position.append(table_rows[i].findAll('td')[1].contents[0])
|
| 123 |
+
player_team.append(table_rows[i].findAll('td')[2].contents[0])
|
| 124 |
+
player_id.append(str(table_rows[i].findAll('td')[3].contents[0])[-76:][:7])
|
| 125 |
+
|
| 126 |
+
player_id_df = pd.DataFrame({'Player':player_name,'Player ID':player_id,'Position':player_position,'Team':player_team})
|
| 127 |
+
#player_id_df.index.name = 'Player Name'
|
| 128 |
+
player_id_df.head()
|
| 129 |
|
| 130 |
+
skater_df = player_id_df[player_id_df['Position'] != 'G']
|
| 131 |
+
goalie_df = player_id_df[player_id_df['Position'] == 'G']
|
| 132 |
+
|
| 133 |
+
season = 20232024
|
| 134 |
+
seasontype = 2
|
| 135 |
+
|
| 136 |
+
def nat_stat_trick_range_pp_gp(rookie='n',start_date='2022-10-01',end_date=str(pd.to_datetime(datetime.now(pytz.timezone('US/Pacific')).strftime('%Y-%m-%d')).date()),sit='all',gp=1):
|
| 137 |
+
url = f'https://www.naturalstattrick.com/playerteams.php?fromseason={season}&thruseason={season}&stype={seasontype}&sit=pp&score=all&stdoi=std&rate=y&team=ALL&pos=S&loc=B&toi=0&gpfilt=gpteam&fd=&td=&tgp='+str(gp)+'&lines=single&draftteam=ALL'
|
| 138 |
+
|
| 139 |
+
player_list_all = []
|
| 140 |
+
response = requests.get(url)
|
| 141 |
+
soup = BeautifulSoup(response.text, 'html.parser')
|
| 142 |
+
table_rows = soup.findAll('tr')
|
| 143 |
+
table_rows = table_rows[1:]
|
| 144 |
+
|
| 145 |
+
for j in range(0,len(table_rows)):
|
| 146 |
+
p_string = [str(x).strip('<td>').strip('</') for x in list(table_rows[j].findAll('td')) if "<td>" in str(x)]
|
| 147 |
+
player_list_all.append([p_string[0]]+[str(table_rows[j].findAll('td')[1]).split('>')[2].split('<')[0]]+p_string[1:]+[str(table_rows[j].findAll('td')[1])[98:105].strip('</a></td>')])
|
| 148 |
+
#table_rows[0].findAll('td')
|
| 149 |
+
|
| 150 |
+
if soup != "":
|
| 151 |
+
columns_list = [str(x).split('>')[1].split('<')[0] for x in soup.findAll('th')]+['player_id']
|
| 152 |
+
df_url = pd.DataFrame(data=player_list_all,columns=columns_list)
|
| 153 |
+
|
| 154 |
+
df_url = df_url.fillna(0)
|
| 155 |
+
df_url['Shots+Hits+Blocks/60'] = df_url['Shots/60'].astype(float)+df_url['Hits/60'].astype(float)+df_url['Shots Blocked/60'].astype(float)
|
| 156 |
+
df_url['Shots+Hits/60'] = df_url['Shots/60'].astype(float)+df_url['Hits/60'].astype(float)
|
| 157 |
+
#print(url)
|
| 158 |
+
return df_url
|
| 159 |
+
|
| 160 |
+
team_abv = pd.read_csv('team_abv.csv')
|
| 161 |
+
team_dict = team_abv.set_index('team_abv').to_dict()
|
| 162 |
+
|
| 163 |
+
yahoo_nhl_df = pd.read_csv('yahoo_to_nhl.csv', encoding='unicode_escape')
|
| 164 |
+
|
| 165 |
+
def nat_stat_convert(df):
|
| 166 |
+
for i in range(0,len(df.columns)):
|
| 167 |
+
if df.columns[i][-3:]=='/60':
|
| 168 |
+
if 'ix' not in df.columns[i]:
|
| 169 |
+
df[df.columns[i]] = np.round(df[df.columns[i]].astype(float)*df['TOI'].astype(float)/60,0)
|
| 170 |
+
df = df.rename(columns={df.columns[i]: df.columns[i].replace('/60','')})
|
| 171 |
+
else:
|
| 172 |
+
df[df.columns[i]] = df[df.columns[i]].astype(float)*df['TOI'].astype(float)/60
|
| 173 |
+
df = df.rename(columns={df.columns[i]: df.columns[i].replace('/60','')})
|
| 174 |
+
|
| 175 |
+
df['Faceoffs %'] = df['Faceoffs Won']/(df['Faceoffs Won']+df['Faceoffs Lost'])
|
| 176 |
+
|
| 177 |
+
return df
|
| 178 |
|
| 179 |
from shiny import ui, render, App
|
| 180 |
import matplotlib.image as mpimg
|
| 181 |
+
app_ui = ui.page_fluid(
|
| 182 |
+
#ui.panel_title("Simulate a normal distribution"),
|
| 183 |
+
|
| 184 |
+
ui.layout_sidebar(
|
| 185 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 186 |
ui.panel_sidebar(
|
| 187 |
+
#ui.input_date_range("date_range_id", "Date range input",start = statcast_df.game_date.min(), end = statcast_df.game_date.max()),
|
| 188 |
+
ui.input_select("team_id", "Select Team",team_dict,width=1,size=1,selected='ANA'),
|
| 189 |
+
ui.input_numeric("n_1", "Last Games x", value=1),
|
| 190 |
+
ui.input_numeric("n_2", "Last Games y", value=0),
|
| 191 |
+
ui.input_numeric("n_3", "Last Games z", value=0),
|
| 192 |
+
ui.input_numeric("top_n", "Show top 'n'", value=10),
|
| 193 |
+
),
|
| 194 |
+
|
| 195 |
ui.panel_main(ui.tags.h3(""),
|
| 196 |
ui.div({"style": "font-size:2em;"},ui.output_text("txt_title")),
|
| 197 |
#ui.tags.h2("Fantasy Hockey Schedule Summary"),
|
| 198 |
+
ui.tags.h5("Created By: @TJStats, Data: Natural Stat Trick, Yahoo Fantasy"),
|
| 199 |
ui.div({"style": "font-size:1.2em;"},ui.output_text("txt")),
|
| 200 |
+
ui.output_table("pp_roundup"),
|
| 201 |
+
#ui.tags.h5('Legend'),
|
| 202 |
+
#ui.tags.h6('An Off Night is defined as a day in which less than half the teams in the NHL are playing'),
|
| 203 |
+
#ui.tags.h6('The scores are determined by using games played, off-nights, B2B, and strength of opponents') )
|
| 204 |
+
)
|
| 205 |
+
),
|
| 206 |
+
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 207 |
|
| 208 |
|
| 209 |
|
| 210 |
|
| 211 |
from urllib.request import Request, urlopen
|
| 212 |
+
from shiny import App, reactive, ui
|
| 213 |
+
from shiny.ui import h2, tags
|
| 214 |
# importing OpenCV(cv2) module
|
| 215 |
|
| 216 |
|
| 217 |
|
| 218 |
|
| 219 |
+
#print(app_ui)
|
| 220 |
def server(input, output, session):
|
| 221 |
|
| 222 |
+
|
| 223 |
@output
|
| 224 |
@render.text
|
| 225 |
def txt():
|
| 226 |
+
return f'{input.team_id()} Last Games PP Summary'
|
| 227 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 228 |
@output
|
| 229 |
@render.text
|
| 230 |
def txt_title():
|
| 231 |
+
|
| 232 |
+
return f'Team Last Games PP% Leaders'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 233 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 234 |
|
| 235 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 236 |
|
| 237 |
|
| 238 |
+
@output
|
| 239 |
+
@render.table
|
| 240 |
+
def pp_roundup():
|
| 241 |
|
| 242 |
+
top_n = input.top_n()
|
| 243 |
+
n_1 = input.n_1()
|
| 244 |
+
n_2 = input.n_2()
|
| 245 |
+
n_3 = input.n_3()
|
| 246 |
|
| 247 |
+
list_of_columns = ['Player', 'Team', 'display_position','percent_owned','L'+str(n_1)+' PP TOI','L'+str(n_2)+' PP TOI','L'+str(n_3)+' PP TOI',
|
| 248 |
+
'L'+str(n_1)+' PP%','L'+str(n_2)+' PP%','L'+str(n_3)+' PP%']
|
| 249 |
|
| 250 |
+
list_of_columns_name = ['Player', 'Team', 'Position','Roster%','L'+str(n_1)+' PP TOI','L'+str(n_2)+' PP TOI','L'+str(n_3)+' PP TOI',
|
| 251 |
+
'L'+str(n_1)+' PP%','L'+str(n_2)+' PP%','L'+str(n_3)+' PP%']
|
|
|
|
|
|
|
|
|
|
| 252 |
|
| 253 |
+
if type(n_1) is not int:
|
| 254 |
+
n_1 = 1
|
| 255 |
+
|
| 256 |
+
if n_2 == 0:
|
| 257 |
+
list_of_columns.remove(f'L{str(n_2)} PP TOI')
|
| 258 |
+
list_of_columns.remove(f'L{str(n_2)} PP%')
|
| 259 |
+
list_of_columns_name.remove(f'L{str(n_2)} PP TOI')
|
| 260 |
+
list_of_columns_name.remove(f'L{str(n_2)} PP%')
|
| 261 |
|
| 262 |
+
if n_3 == 0:
|
| 263 |
+
list_of_columns.remove(f'L{str(n_3)} PP TOI')
|
| 264 |
+
list_of_columns.remove(f'L{str(n_3)} PP%')
|
| 265 |
+
list_of_columns_name.remove(f'L{str(n_3)} PP TOI')
|
| 266 |
+
list_of_columns_name.remove(f'L{str(n_3)} PP%')
|
| 267 |
|
| 268 |
+
start_date ='2023-09-01'
|
| 269 |
+
end_date = '2024-05-01'
|
| 270 |
|
| 271 |
+
df_pp_1 = nat_stat_trick_range_pp_gp(rookie='n',start_date = start_date,end_date = end_date, sit='pp',gp=n_1)
|
| 272 |
+
df_pp_2 = nat_stat_trick_range_pp_gp(rookie='n',start_date = start_date,end_date = end_date, sit='pp',gp=n_2)
|
| 273 |
+
df_pp_3 = nat_stat_trick_range_pp_gp(rookie='n',start_date = start_date,end_date = end_date, sit='pp',gp=n_3)
|
| 274 |
|
|
|
|
| 275 |
|
| 276 |
+
df_all_pp_1 = nat_stat_convert(df_pp_1)
|
| 277 |
+
df_all_pp_2 = nat_stat_convert(df_pp_2)
|
| 278 |
+
df_all_pp_3 = nat_stat_convert(df_pp_3)
|
| 279 |
|
| 280 |
+
df_final = df_all_pp_1.merge( df_all_pp_2,how='outer',left_on=['player_id'],right_on=['player_id'],suffixes=("","_2"))
|
| 281 |
+
df_final = df_final.merge( df_all_pp_3,how='outer',left_on=['player_id'],right_on=['player_id'],suffixes=("_1","_3"))
|
| 282 |
|
|
|
|
| 283 |
|
| 284 |
+
team_report_1 = pd.read_html(f'https://www.naturalstattrick.com/teamtable.php?fromseason={season}&thruseason={season}&stype={seasontype}&sit=pp&score=all&rate=n&team=all&loc=B&gpf=c&gp='+str(n_1)+'&fd=&td=')[0]
|
| 285 |
+
team_report_2 = pd.read_html(f'https://www.naturalstattrick.com/teamtable.php?fromseason={season}&thruseason={season}&stype={seasontype}&sit=pp&score=all&rate=n&team=all&loc=B&gpf=c&gp='+str(n_2)+'&fd=&td=')[0]
|
| 286 |
+
team_report_3 = pd.read_html(f'https://www.naturalstattrick.com/teamtable.php?fromseason=fromseason={season}&thruseason={season}&stype={seasontype}&sit=pp&score=all&rate=n&team=all&loc=B&gpf=c&gp='+str(n_3)+'&fd=&td=')[0]
|
| 287 |
+
team_report_1 = team_report_1.merge(team_abv,left_on=['Team'],right_on=['team_name'],how='left')
|
| 288 |
+
team_report_2 = team_report_2.merge(team_abv,left_on=['Team'],right_on=['team_name'],how='left')
|
| 289 |
+
team_report_3 = team_report_3.merge(team_abv,left_on=['Team'],right_on=['team_name'],how='left')
|
| 290 |
|
| 291 |
+
test = df_final[['player_id','Player_1','Team_1','Position_1','TOI_1','TOI_2','TOI_3',]]
|
| 292 |
+
test.columns = ['player_id','Player','Team','Position','TOI_1','TOI_2','TOI_3',]
|
| 293 |
+
test = test.merge(team_report_1[['TOI','team_abv']],how='left',left_on=['Team'],right_on=['team_abv'], suffixes=('','_1_team'))
|
| 294 |
+
test = test.merge(team_report_2[['TOI','team_abv']],how='left',left_on=['Team'],right_on=['team_abv'], suffixes=('','_2_team'))
|
| 295 |
+
test = test.merge(team_report_3[['TOI','team_abv']],how='left',left_on=['Team'],right_on=['team_abv'], suffixes=('','_3_team'))
|
| 296 |
+
test = test.fillna('0:00')
|
| 297 |
|
| 298 |
+
test['TOI'] = [int(x[:-3])+int(x[-2:])*100/60/100 for x in test['TOI'] ]
|
| 299 |
+
test['TOI_1'] = [x if x!='0:00' else 0 for x in test['TOI_1']]
|
| 300 |
+
test['TOI_2'] = [x if x!='0:00' else 0 for x in test['TOI_2']]
|
| 301 |
+
test['TOI_3'] = [x if x!='0:00' else 0 for x in test['TOI_3']]
|
| 302 |
|
| 303 |
+
test['TOI_2_team'] = [int(x[:-3])+int(x[-2:])*100/60/100 for x in test['TOI_2_team'] ]
|
| 304 |
+
test['TOI_3_team'] = [int(x[:-3])+int(x[-2:])*100/60/100 for x in test['TOI_3_team']]
|
| 305 |
|
| 306 |
+
test['TOI'] = test['TOI'].astype(float)
|
|
|
|
| 307 |
|
| 308 |
+
test['PP%_1'] = test['TOI_1'].astype(float)/ test['TOI'].astype(float)
|
| 309 |
+
test['PP%_2'] = test['TOI_2'].astype(float)/ test['TOI_2_team'].astype(float)
|
| 310 |
+
test['PP%_3'] = test['TOI_3'].astype(float)/ test['TOI_3_team'].astype(float)
|
| 311 |
+
test = test.fillna(0)
|
| 312 |
+
test['TOI_1'] = ["%d:%02d" % (int(x),(x*60)%60) for x in test['TOI_1'].astype(float)]
|
| 313 |
+
test['TOI_2'] = ["%d:%02d" % (int(x),(x*60)%60) for x in test['TOI_2'].astype(float)]
|
| 314 |
+
test['TOI_3'] = ["%d:%02d" % (int(x),(x*60)%60) for x in test['TOI_3'].astype(float)]
|
| 315 |
+
test = test.drop(['team_abv','team_abv_2_team','team_abv_3_team','TOI','TOI_2_team','TOI_3_team'],axis=1)
|
| 316 |
+
test.columns = ['player_id','Player','Team','Position','L'+str(n_1)+' PP TOI','L'+str(n_2)+' PP TOI','L'+str(n_3)+' PP TOI','L'+str(n_1)+' PP%','L'+str(n_2)+' PP%','L'+str(n_3)+' PP%']
|
| 317 |
|
| 318 |
+
yahoo_df = yahoo_df_2.merge(yahoo_nhl_df,left_on = 'player_id',right_on='player_id_yahoo',suffixes=['','_y'])
|
| 319 |
+
yahoo_df.nhl_id = yahoo_df.nhl_id.astype(float)
|
| 320 |
+
test.player_id = test.player_id.astype(float)
|
| 321 |
|
| 322 |
+
test = test.merge(right=yahoo_df,left_on='player_id',right_on='nhl_id',suffixes=['','_y'],how='left')
|
|
|
|
|
|
|
| 323 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 324 |
|
| 325 |
+
print('Column List')
|
| 326 |
+
print(test.columns)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 327 |
|
|
|
|
| 328 |
|
| 329 |
+
print(list_of_columns)
|
| 330 |
+
test = test[list_of_columns]
|
| 331 |
+
test = test.rename(columns={'percent_owned':'Roster%'})
|
| 332 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 333 |
|
| 334 |
+
top_d_score = test[(test.Team==input.team_id())].sort_values(by=['L'+str(n_1)+' PP%'],ascending=False).reset_index(drop=True)
|
| 335 |
+
top_d_score = top_d_score.head(min(len(top_d_score),top_n))
|
| 336 |
|
|
|
|
|
|
|
| 337 |
|
| 338 |
+
#top_d_score.columns = list_of_columns_name
|
| 339 |
|
| 340 |
+
cols = top_d_score.columns.tolist();
|
|
|
|
| 341 |
|
| 342 |
+
top_d_score['Deployment'] = "PP2"
|
| 343 |
+
top_d_score['Deployment'][0:5] = "PP1"
|
| 344 |
|
| 345 |
+
# df_style_bang = top_d_score.head(10).style.background_gradient(cmap=co, subset=['L'+str(n_1)+' PP%','L'+str(n_2)+' PP%','L'+str(n_3)+' PP%','Roster%']).hide_index().set_properties(**{'Height': '12px'},**{'text-align': 'center'}).set_table_styles([{
|
| 346 |
+
# 'selector': 'caption',
|
| 347 |
+
# 'props': [
|
| 348 |
+
# ('color', ''),
|
| 349 |
+
# ('fontname', 'Century Gothic'),
|
| 350 |
+
# ('font-size', '20px'),
|
| 351 |
+
# ('font-style', 'italic'),
|
| 352 |
+
# ('font-weight', ''),
|
| 353 |
+
# ('text-align', 'centre'),
|
| 354 |
+
# ]
|
| 355 |
|
| 356 |
+
# },{'selector' :'th', 'props':[('text-align', 'center'),('Height','5px')]},{'selector' :'td', 'props':[('text-align', 'center'),('font-size', '13px'),('fontname', 'Century Gothic')]}]).format(
|
| 357 |
+
# {'L'+str(n_1)+' PP%': '{:.0%}',
|
| 358 |
+
# 'L'+str(n_2)+' PP%': '{:.0%}',
|
| 359 |
+
# 'L'+str(n_3)+' PP%': '{:.0%}',
|
| 360 |
+
# 'Roster%': '{:.0%}',
|
| 361 |
+
# },)
|
|
|
|
| 362 |
|
| 363 |
+
df_style_bang = top_d_score.head(input.top_n()).style.background_gradient(cmap=co,vmin=0,vmax=1, subset=[x for x in cols if x.endswith('PP%')]).set_properties(**{'border': '3 px'},overwrite=False).set_table_styles([{
|
|
|
|
|
|
|
| 364 |
'selector': 'caption',
|
| 365 |
'props': [
|
| 366 |
('color', ''),
|
|
|
|
| 371 |
('text-align', 'centre'),
|
| 372 |
]
|
| 373 |
|
| 374 |
+
},{'selector' :'th', 'props':[('text-align', 'center'),('Height','px'),('color','black'),('border', '1px black solid !important')]},{'selector' :'td', 'props':[('text-align', 'center'),('font-size', '18px'),('color','black')]}],overwrite=False).set_properties(
|
| 375 |
+
**{'background-color':'White','index':'White','min-width':'75px'},overwrite=False).set_table_styles(
|
|
|
|
| 376 |
[{'selector': 'th:first-child', 'props': [('background-color', 'white')]}],overwrite=False).set_table_styles(
|
| 377 |
[{'selector': 'tr:first-child', 'props': [('background-color', 'white')]}],overwrite=False).set_table_styles(
|
| 378 |
[{'selector': 'tr', 'props': [('line-height', '20px')]}],overwrite=False).set_properties(
|
| 379 |
+
**{'Height': '8px'},**{'text-align': 'center'},overwrite=False).hide_index().format(
|
| 380 |
+
{'L'+str(n_1)+' PP%': '{:.0%}',
|
| 381 |
+
'L'+str(n_2)+' PP%': '{:.0%}',
|
| 382 |
+
'L'+str(n_3)+' PP%': '{:.0%}',
|
| 383 |
+
'Roster%': '{:.0%}',
|
| 384 |
+
},)
|
| 385 |
+
|
| 386 |
+
return df_style_bang
|
|
|
|
|
|
|
|
|
|
| 387 |
|
| 388 |
|
| 389 |
|
| 390 |
+
# test = test.fillna(0)
|
| 391 |
+
#test['PP TOI'] = ["%d:%02d" % (int(x),(x*60)%60) if x>0 else '0:00' for x in test['PP TOI']]
|
| 392 |
|
| 393 |
|
| 394 |
|
team_abv.csv
CHANGED
|
@@ -24,7 +24,7 @@ PHI,Philadelphia Flyers
|
|
| 24 |
PIT,Pittsburgh Penguins
|
| 25 |
S.J,San Jose Sharks
|
| 26 |
SEA,Seattle Kraken
|
| 27 |
-
STL,St
|
| 28 |
T.B,Tampa Bay Lightning
|
| 29 |
TOR,Toronto Maple Leafs
|
| 30 |
VAN,Vancouver Canucks
|
|
|
|
| 24 |
PIT,Pittsburgh Penguins
|
| 25 |
S.J,San Jose Sharks
|
| 26 |
SEA,Seattle Kraken
|
| 27 |
+
STL,St Louis Blues
|
| 28 |
T.B,Tampa Bay Lightning
|
| 29 |
TOR,Toronto Maple Leafs
|
| 30 |
VAN,Vancouver Canucks
|
yahoo_to_nhl.csv
ADDED
|
@@ -0,0 +1,805 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
player_id_yahoo,full,first,last,nhl_id
|
| 2 |
+
6743,Connor McDavid,Connor,McDavid,8478402
|
| 3 |
+
6369,Leon Draisaitl,Leon,Draisaitl,8477934
|
| 4 |
+
6391,David Pastrnak,David,Pastrnak,8477956
|
| 5 |
+
5980,Nathan MacKinnon,Nathan,MacKinnon,8477492
|
| 6 |
+
7114,Matthew Tkachuk,Matthew,Tkachuk,8479314
|
| 7 |
+
7554,Jason Robertson,Jason,Robertson,8480027
|
| 8 |
+
5425,Nikita Kucherov,Nikita,Kucherov,8476453
|
| 9 |
+
6752,Mikko Rantanen,Mikko,Rantanen,8478420
|
| 10 |
+
7134,Tage Thompson,Tage,Thompson,8479420
|
| 11 |
+
7902,Brady Tkachuk,Brady,Tkachuk,8480801
|
| 12 |
+
7109,Auston Matthews,Auston,Matthews,8479318
|
| 13 |
+
8279,Jack Hughes,Jack,Hughes,8481559
|
| 14 |
+
7519,Cale Makar,Cale,Makar,8480069
|
| 15 |
+
6877,Kirill Kaprizov,Kirill,Kaprizov,8478864
|
| 16 |
+
3637,Alex Ovechkin,Alex,Ovechkin,8471214
|
| 17 |
+
3737,Sidney Crosby,Sidney,Crosby,8471675
|
| 18 |
+
6746,Mitch Marner,Mitch,Marner,8478483
|
| 19 |
+
6486,Igor Shesterkin,Igor,Shesterkin,8478048
|
| 20 |
+
6447,Ilya Sorokin,Ilya,Sorokin,8478009
|
| 21 |
+
5699,Andrei Vasilevskiy,Andrei,Vasilevskiy,8476883
|
| 22 |
+
6791,Roope Hintz,Roope,Hintz,8478449
|
| 23 |
+
7541,Jake Oettinger,Jake,Oettinger,8479979
|
| 24 |
+
7736,Alexandar Georgiev,Alexandar,Georgiev,8480382
|
| 25 |
+
6374,William Nylander,William,Nylander,8477939
|
| 26 |
+
5367,Mika Zibanejad,Mika,Zibanejad,8476459
|
| 27 |
+
6448,Brayden Point,Brayden,Point,8478010
|
| 28 |
+
5853,Linus Ullmark,Linus,Ullmark,8476999
|
| 29 |
+
5362,Ryan Nugent-Hopkins,Ryan,Nugent-Hopkins,8476454
|
| 30 |
+
4681,John Tavares,John,Tavares,8475166
|
| 31 |
+
7520,Elias Pettersson,Elias,Pettersson,8480012
|
| 32 |
+
5820,Connor Hellebuyck,Connor,Hellebuyck,8476945
|
| 33 |
+
5096,Zach Hyman,Zach,Hyman,8475786
|
| 34 |
+
4471,Steven Stamkos,Steven,Stamkos,8474564
|
| 35 |
+
8643,Tim Stutzle,Tim,Stutzle,8482116
|
| 36 |
+
6728,Artemi Panarin,Artemi,Panarin,8478550
|
| 37 |
+
4351,Brad Marchand,Brad,Marchand,8473419
|
| 38 |
+
6777,Sebastian Aho,Sebastian,Aho,8478427
|
| 39 |
+
7174,Adam Fox,Adam,Fox,8479323
|
| 40 |
+
7626,Jeremy Swayman,Jeremy,Swayman,8480280
|
| 41 |
+
6759,Kyle Connor,Kyle,Connor,8478398
|
| 42 |
+
30544,Connor Bedard,Connor,Bedard,8484144
|
| 43 |
+
6057,Jake Guentzel,Jake,Guentzel,8477404
|
| 44 |
+
4491,Erik Karlsson,Erik,Karlsson,8474578
|
| 45 |
+
6062,Carter Verhaeghe,Carter,Verhaeghe,8477409
|
| 46 |
+
6381,Dylan Larkin,Dylan,Larkin,8477946
|
| 47 |
+
6751,Timo Meier,Timo,Meier,8478414
|
| 48 |
+
6384,Alex Tuch,Alex,Tuch,8477949
|
| 49 |
+
4967,Jeff Skinner,Jeff,Skinner,8475784
|
| 50 |
+
7516,Nico Hischier,Nico,Hischier,8480002
|
| 51 |
+
8290,Matt Boldy,Matt,Boldy,8481557
|
| 52 |
+
7899,Rasmus Dahlin,Rasmus,Dahlin,8480839
|
| 53 |
+
6395,Adrian Kempe,Adrian,Kempe,8477960
|
| 54 |
+
5981,Aleksander Barkov,Aleksander,Barkov,8477493
|
| 55 |
+
7143,Jordan Kyrou,Jordan,Kyrou,8479385
|
| 56 |
+
3638,Evgeni Malkin,Evgeni,Malkin,8471215
|
| 57 |
+
7147,Alex DeBrincat,Alex,DeBrincat,8479337
|
| 58 |
+
4002,Claude Giroux,Claude,Giroux,8473512
|
| 59 |
+
4519,Jamie Benn,Jamie,Benn,8473994
|
| 60 |
+
5370,Dougie Hamilton,Dougie,Hamilton,8476462
|
| 61 |
+
5152,Mark Stone,Mark,Stone,8475913
|
| 62 |
+
5470,Johnny Gaudreau,Johnny,Gaudreau,8476346
|
| 63 |
+
4990,Brock Nelson,Brock,Nelson,8475754
|
| 64 |
+
6377,Kevin Fiala,Kevin,Fiala,8477942
|
| 65 |
+
6390,Jared McCann,Jared,McCann,8477955
|
| 66 |
+
7115,Clayton Keller,Clayton,Keller,8479343
|
| 67 |
+
5368,Mark Scheifele,Mark,Scheifele,8476460
|
| 68 |
+
5376,J.T. Miller,J.T.,Miller,8476468
|
| 69 |
+
8285,Dylan Cozens,Dylan,Cozens,8481528
|
| 70 |
+
5988,Bo Horvat,Bo,Horvat,8477500
|
| 71 |
+
7527,Martin Necas,Martin,Necas,8480039
|
| 72 |
+
4930,Roman Josi,Roman,Josi,8474600
|
| 73 |
+
7267,Jesper Bratt,Jesper,Bratt,8479407
|
| 74 |
+
5020,Tyler Toffoli,Tyler,Toffoli,8475726
|
| 75 |
+
3985,Joe Pavelski,Joe,Pavelski,8470794
|
| 76 |
+
7111,Pierre-Luc Dubois,Pierre-Luc,Dubois,8479400
|
| 77 |
+
7122,Charlie McAvoy,Charlie,McAvoy,8479325
|
| 78 |
+
6762,Joel Eriksson Ek,Joel,Eriksson Ek,8478493
|
| 79 |
+
6368,Sam Reinhart,Sam,Reinhart,8477933
|
| 80 |
+
7636,Drake Batherson,Drake,Batherson,8480208
|
| 81 |
+
7163,Filip Gustavsson,Filip,Gustavsson,8479406
|
| 82 |
+
6078,Juuse Saros,Juuse,Saros,8477424
|
| 83 |
+
8878,Matty Beniers,Matty,Beniers,8482665
|
| 84 |
+
5992,Josh Morrissey,Josh,Morrissey,8477504
|
| 85 |
+
7905,Quinn Hughes,Quinn,Hughes,8480800
|
| 86 |
+
9268,Andrei Kuzmenko,Andrei,Kuzmenko,8483808
|
| 87 |
+
4687,Nazem Kadri,Nazem,Kadri,8475172
|
| 88 |
+
6766,Travis Konecny,Travis,Konecny,8478439
|
| 89 |
+
4921,Mats Zuccarello,Mats,Zuccarello,8475692
|
| 90 |
+
4901,Sergei Bobrovsky,Sergei,Bobrovsky,8475683
|
| 91 |
+
5431,Vincent Trocheck,Vincent,Trocheck,8476389
|
| 92 |
+
8287,Trevor Zegras,Trevor,Zegras,8481533
|
| 93 |
+
6480,Viktor Arvidsson,Viktor,Arvidsson,8478042
|
| 94 |
+
4248,Logan Couture,Logan,Couture,8474053
|
| 95 |
+
7518,Miro Heiskanen,Miro,Heiskanen,8480036
|
| 96 |
+
7264,Brandon Hagel,Brandon,Hagel,8479542
|
| 97 |
+
5391,Rickard Rakell,Rickard,Rakell,8476483
|
| 98 |
+
4699,Chris Kreider,Chris,Kreider,8475184
|
| 99 |
+
3788,Anze Kopitar,Anze,Kopitar,8471685
|
| 100 |
+
6424,Brandon Montour,Brandon,Montour,8477986
|
| 101 |
+
6744,Jack Eichel,Jack,Eichel,8478403
|
| 102 |
+
5712,Jonathan Marchessault,Jonathan,Marchessault,8476539
|
| 103 |
+
5161,Frederik Andersen,Frederik,Andersen,8475883
|
| 104 |
+
4263,Mikael Backlund,Mikael,Backlund,8474150
|
| 105 |
+
30111,Devon Levi,Devon,Levi,8482221
|
| 106 |
+
4682,Victor Hedman,Victor,Hedman,8475167
|
| 107 |
+
7900,Andrei Svechnikov,Andrei,Svechnikov,8480830
|
| 108 |
+
5697,Tomas Hertl,Tomas,Hertl,8476881
|
| 109 |
+
4265,David Perron,David,Perron,8474102
|
| 110 |
+
7528,Nick Suzuki,Nick,Suzuki,8480018
|
| 111 |
+
5753,Joonas Korpisalo,Joonas,Korpisalo,8476914
|
| 112 |
+
6764,Ilya Samsonov,Ilya,Samsonov,8478492
|
| 113 |
+
3341,Marc-Andre Fleury,Marc-Andre,Fleury,8470594
|
| 114 |
+
6405,Thatcher Demko,Thatcher,Demko,8477967
|
| 115 |
+
6745,Dylan Strome,Dylan,Strome,8478440
|
| 116 |
+
5991,Max Domi,Max,Domi,8477503
|
| 117 |
+
4498,Jordan Eberle,Jordan,Eberle,8474586
|
| 118 |
+
6055,Pavel Buchnevich,Pavel,Buchnevich,8477402
|
| 119 |
+
5928,Anders Lee,Anders,Lee,8475314
|
| 120 |
+
5984,Elias Lindholm,Elias,Lindholm,8477496
|
| 121 |
+
6756,Jake DeBrusk,Jake,DeBrusk,8478498
|
| 122 |
+
3358,Brent Burns,Brent,Burns,8470613
|
| 123 |
+
6890,Troy Terry,Troy,Terry,8478873
|
| 124 |
+
8314,Pyotr Kochetkov,Pyotr,Kochetkov,8481611
|
| 125 |
+
6485,Michael Bunting,Michael,Bunting,8478047
|
| 126 |
+
5336,Darcy Kuemper,Darcy,Kuemper,8475311
|
| 127 |
+
7593,Stuart Skinner,Stuart,Skinner,8479973
|
| 128 |
+
7908,Evan Bouchard,Evan,Bouchard,8480803
|
| 129 |
+
8658,Dawson Mercer,Dawson,Mercer,8482110
|
| 130 |
+
6024,Tristan Jarry,Tristan,Jarry,8477465
|
| 131 |
+
7156,Carter Hart,Carter,Hart,8479394
|
| 132 |
+
5639,Reilly Smith,Reilly,Smith,8475191
|
| 133 |
+
6408,Vitek Vanecek,Vitek,Vanecek,8477970
|
| 134 |
+
7525,Owen Tippett,Owen,Tippett,8480015
|
| 135 |
+
4685,Brayden Schenn,Brayden,Schenn,8475170
|
| 136 |
+
4984,Kevin Hayes,Kevin,Hayes,8475763
|
| 137 |
+
4986,Evgeny Kuznetsov,Evgeny,Kuznetsov,8475744
|
| 138 |
+
5387,Phillip Danault,Phillip,Danault,8476479
|
| 139 |
+
5626,Alex Killorn,Alex,Killorn,8473986
|
| 140 |
+
4503,John Carlson,John,Carlson,8474590
|
| 141 |
+
6707,Frank Vatrano,Frank,Vatrano,8478366
|
| 142 |
+
5405,Boone Jenner,Boone,Jenner,8476432
|
| 143 |
+
4683,Matt Duchene,Matt,Duchene,8475168
|
| 144 |
+
5032,Jason Zucker,Jason,Zucker,8475722
|
| 145 |
+
7110,Patrik Laine,Patrik,Laine,8479339
|
| 146 |
+
8284,Moritz Seider,Moritz,Seider,8481542
|
| 147 |
+
6765,Brock Boeser,Brock,Boeser,8478444
|
| 148 |
+
6798,Vince Dunn,Vince,Dunn,8478407
|
| 149 |
+
5768,Chandler Stephenson,Chandler,Stephenson,8476905
|
| 150 |
+
5053,Bryan Rust,Bryan,Rust,8475810
|
| 151 |
+
7535,Robert Thomas,Robert,Thomas,8480023
|
| 152 |
+
7117,Mikhail Sergachev,Mikhail,Sergachev,8479410
|
| 153 |
+
5281,Tyson Barrie,Tyson,Barrie,8475197
|
| 154 |
+
6035,Artturi Lehkonen,Artturi,Lehkonen,8477476
|
| 155 |
+
5983,Seth Jones,Seth,Jones,8477495
|
| 156 |
+
4962,Tyler Seguin,Tyler,Seguin,8475794
|
| 157 |
+
3641,Blake Wheeler,Blake,Wheeler,8471218
|
| 158 |
+
7523,Casey Mittelstadt,Casey,Mittelstadt,8479999
|
| 159 |
+
5364,Jonathan Huberdeau,Jonathan,Huberdeau,8476456
|
| 160 |
+
7910,Noah Dobson,Noah,Dobson,8480865
|
| 161 |
+
6367,Aaron Ekblad,Aaron,Ekblad,8477932
|
| 162 |
+
4976,Vladimir Tarasenko,Vladimir,Tarasenko,8475765
|
| 163 |
+
6015,J.T. Compher,J.T.,Compher,8477456
|
| 164 |
+
6462,Ville Husso,Ville,Husso,8478024
|
| 165 |
+
5010,Justin Faulk,Justin,Faulk,8475753
|
| 166 |
+
5686,Hampus Lindholm,Hampus,Lindholm,8476854
|
| 167 |
+
6386,Nick Schmaltz,Nick,Schmaltz,8477951
|
| 168 |
+
6748,Pavel Zacha,Pavel,Zacha,8478401
|
| 169 |
+
6330,Yanni Gourde,Yanni,Gourde,8476826
|
| 170 |
+
5454,Jordan Binnington,Jordan,Binnington,8476412
|
| 171 |
+
6068,Oliver Bjorkstrand,Oliver,Bjorkstrand,8477416
|
| 172 |
+
4240,Patrick Kane,Patrick,Kane,8474141
|
| 173 |
+
6758,Mathew Barzal,Mathew,Barzal,8478445
|
| 174 |
+
5700,Scott Laughton,Scott,Laughton,8476872
|
| 175 |
+
4961,Taylor Hall,Taylor,Hall,8475791
|
| 176 |
+
6169,Dominik Kubalik,Dominik,Kubalik,8477330
|
| 177 |
+
5421,William Karlsson,William,Karlsson,8476448
|
| 178 |
+
6370,Sam Bennett,Sam,Bennett,8477935
|
| 179 |
+
8033,Akira Schmid,Akira,Schmid,8481033
|
| 180 |
+
6865,Conor Garland,Conor,Garland,8478856
|
| 181 |
+
30221,Luke Hughes,Luke,Hughes,8482684
|
| 182 |
+
7536,Filip Chytil,Filip,Chytil,8480078
|
| 183 |
+
4472,Drew Doughty,Drew,Doughty,8474563
|
| 184 |
+
7903,Barrett Hayton,Barrett,Hayton,8480849
|
| 185 |
+
4474,Alex Pietrangelo,Alex,Pietrangelo,8474565
|
| 186 |
+
6908,Andrew Mangiapane,Andrew,Mangiapane,8478233
|
| 187 |
+
6753,Lawson Crouse,Lawson,Crouse,8478474
|
| 188 |
+
7164,Dillon Dube,Dillon,Dube,8479346
|
| 189 |
+
6385,Tony DeAngelo,Tony,DeAngelo,8477950
|
| 190 |
+
4854,Cam Talbot,Cam,Talbot,8475660
|
| 191 |
+
5441,Blake Coleman,Blake,Coleman,8476399
|
| 192 |
+
5989,Valeri Nichushkin,Valeri,Nichushkin,8477501
|
| 193 |
+
4965,Nino Niederreiter,Nino,Niederreiter,8475799
|
| 194 |
+
5986,Darnell Nurse,Darnell,Nurse,8477498
|
| 195 |
+
6009,Ryan Hartman,Ryan,Hartman,8477451
|
| 196 |
+
8879,Mason McTavish,Mason,McTavish,8482745
|
| 197 |
+
6795,Rasmus Andersson,Rasmus,Andersson,8478397
|
| 198 |
+
6788,Daniel Sprong,Daniel,Sprong,8478466
|
| 199 |
+
5946,Erik Haula,Erik,Haula,8475287
|
| 200 |
+
4792,Tomas Tatar,Tomas,Tatar,8475193
|
| 201 |
+
5800,Andreas Athanasiou,Andreas,Athanasiou,8476960
|
| 202 |
+
8644,Lucas Raymond,Lucas,Raymond,8482078
|
| 203 |
+
4704,Marcus Johansson,Marcus,Johansson,8475149
|
| 204 |
+
6726,Evan Rodrigues,Evan,Rodrigues,8478542
|
| 205 |
+
8155,Logan Thompson,Logan,Thompson,8480313
|
| 206 |
+
30546,Adam Fantilli,Adam,Fantilli,8484166
|
| 207 |
+
6494,Gustav Forsling,Gustav,Forsling,8478055
|
| 208 |
+
5691,Filip Forsberg,Filip,Forsberg,8476887
|
| 209 |
+
4988,Charlie Coyle,Charlie,Coyle,8475745
|
| 210 |
+
5366,Ryan Strome,Ryan,Strome,8476458
|
| 211 |
+
7542,Morgan Frost,Morgan,Frost,8480028
|
| 212 |
+
4974,Jaden Schwartz,Jaden,Schwartz,8475768
|
| 213 |
+
6549,Victor Olofsson,Victor,Olofsson,8478109
|
| 214 |
+
6770,Anthony Beauvillier,Anthony,Beauvillier,8478463
|
| 215 |
+
5785,Josh Anderson,Josh,Anderson,8476981
|
| 216 |
+
7901,Jesperi Kotkaniemi,Jesperi,Kotkaniemi,8480829
|
| 217 |
+
6760,Thomas Chabot,Thomas,Chabot,8478469
|
| 218 |
+
8607,Alexander Barabanov,Alexander,Barabanov,8482222
|
| 219 |
+
6476,Devon Toews,Devon,Toews,8478038
|
| 220 |
+
5708,Brady Skjei,Brady,Skjei,8476869
|
| 221 |
+
8898,Wyatt Johnston,Wyatt,Johnston,8482740
|
| 222 |
+
6402,Ivan Barbashev,Ivan,Barbashev,8477964
|
| 223 |
+
5407,John Gibson,John,Gibson,8476434
|
| 224 |
+
4064,Kris Letang,Kris,Letang,8471724
|
| 225 |
+
3355,Zach Parise,Zach,Parise,8470610
|
| 226 |
+
5769,Shayne Gostisbehere,Shayne,Gostisbehere,8476906
|
| 227 |
+
4972,Cam Fowler,Cam,Fowler,8475764
|
| 228 |
+
8293,Cole Caufield,Cole,Caufield,8481540
|
| 229 |
+
5747,Jordan Martinook,Jordan,Martinook,8476921
|
| 230 |
+
3801,T.J. Oshie,T.J.,Oshie,8471698
|
| 231 |
+
6887,Karel Vejmelka,Karel,Vejmelka,8478872
|
| 232 |
+
7912,Joel Farabee,Joel,Farabee,8480797
|
| 233 |
+
4947,Jacob Markstrom,Jacob,Markstrom,8474593
|
| 234 |
+
4581,Martin Jones,Martin,Jones,8474889
|
| 235 |
+
6585,Conor Sheary,Conor,Sheary,8477839
|
| 236 |
+
8653,Seth Jarvis,Seth,Jarvis,8482093
|
| 237 |
+
7066,Mason Marchment,Mason,Marchment,8478975
|
| 238 |
+
7557,Eetu Luostarinen,Eetu,Luostarinen,8480185
|
| 239 |
+
6337,Pheonix Copley,Pheonix,Copley,8477831
|
| 240 |
+
7224,Ross Colton,Ross,Colton,8479525
|
| 241 |
+
7526,Gabriel Vilardi,Gabriel,Vilardi,8480014
|
| 242 |
+
8310,Shane Pinto,Shane,Pinto,8481596
|
| 243 |
+
5689,Jacob Trouba,Jacob,Trouba,8476885
|
| 244 |
+
8641,Alexis Lafreniere,Alexis,Lafreniere,8482109
|
| 245 |
+
6747,Noah Hanifin,Noah,Hanifin,8478396
|
| 246 |
+
7920,K'Andre Miller,K'Andre,Miller,8480817
|
| 247 |
+
3983,Phil Kessel,Phil,Kessel,8473548
|
| 248 |
+
7161,Filip Hronek,Filip,Hronek,8479425
|
| 249 |
+
5238,Adam Henrique,Adam,Henrique,8474641
|
| 250 |
+
8281,Kirby Dach,Kirby,Dach,8481523
|
| 251 |
+
6767,Jack Roslovic,Jack,Roslovic,8478458
|
| 252 |
+
5382,Stefan Noesen,Stefan,Noesen,8476474
|
| 253 |
+
7166,Taylor Raddysh,Taylor,Raddysh,8479390
|
| 254 |
+
6079,Miles Wood,Miles,Wood,8477425
|
| 255 |
+
5698,Teuvo Teravainen,Teuvo,Teravainen,8476882
|
| 256 |
+
6655,Frederick Gaudreau,Frederick,Gaudreau,8477919
|
| 257 |
+
5967,Antti Raanta,Antti,Raanta,8477293
|
| 258 |
+
6184,MacKenzie Weegar,MacKenzie,Weegar,8477346
|
| 259 |
+
6818,Adin Hill,Adin,Hill,8478499
|
| 260 |
+
7874,Pavel Francouz,Pavel,Francouz,8480925
|
| 261 |
+
4003,Semyon Varlamov,Semyon,Varlamov,8473575
|
| 262 |
+
5039,Radko Gudas,Radko,Gudas,8475462
|
| 263 |
+
5365,Adam Larsson,Adam,Larsson,8476457
|
| 264 |
+
7170,Joseph Woll,Joseph,Woll,8479361
|
| 265 |
+
5529,Laurent Brossoit,Laurent,Brossoit,8476316
|
| 266 |
+
4475,Luke Schenn,Luke,Schenn,8474568
|
| 267 |
+
5057,Scott Wedgewood,Scott,Wedgewood,8475809
|
| 268 |
+
7089,Alex Lyon,Alex,Lyon,8479312
|
| 269 |
+
5462,Jean-Gabriel Pageau,Jean-Gabriel,Pageau,8476419
|
| 270 |
+
5254,Dmitry Orlov,Dmitry,Orlov,8475200
|
| 271 |
+
5232,Jared Spurgeon,Jared,Spurgeon,8474716
|
| 272 |
+
7365,Tanner Jeannot,Tanner,Jeannot,8479661
|
| 273 |
+
6636,Garnet Hathaway,Garnet,Hathaway,8477903
|
| 274 |
+
8489,Dustin Wolf,Dustin,Wolf,8481692
|
| 275 |
+
5685,Morgan Rielly,Morgan,Rielly,8476853
|
| 276 |
+
4642,Alex Stalock,Alex,Stalock,8471774
|
| 277 |
+
8040,Samuel Ersson,Samuel,Ersson,8481035
|
| 278 |
+
3980,Jordan Staal,Jordan,Staal,8473533
|
| 279 |
+
7083,Brandon Tanev,Brandon,Tanev,8479293
|
| 280 |
+
8433,Arturs Silovs,Arturs,Silovs,8481668
|
| 281 |
+
5553,Anton Forsberg,Anton,Forsberg,8476341
|
| 282 |
+
8895,Jesper Wallstedt,Jesper,Wallstedt,8482661
|
| 283 |
+
8337,Hunter Jones,Hunter,Jones,8481545
|
| 284 |
+
30487,Erik Portillo,Erik,Portillo,8481707
|
| 285 |
+
5329,Mattias Ekholm,Mattias,Ekholm,8475218
|
| 286 |
+
7338,Zach Sawchenko,Zach,Sawchenko,8479313
|
| 287 |
+
5022,Calvin Pickard,Calvin,Pickard,8475717
|
| 288 |
+
5434,Adam Lowry,Adam,Lowry,8476392
|
| 289 |
+
8291,Spencer Knight,Spencer,Knight,8481519
|
| 290 |
+
8651,Yaroslav Askarov,Yaroslav,Askarov,8482137
|
| 291 |
+
4849,Jeff Petry,Jeff,Petry,8473507
|
| 292 |
+
5767,Chris Driedger,Chris,Driedger,8476904
|
| 293 |
+
8004,Joel Hofer,Joel,Hofer,8480981
|
| 294 |
+
4779,Marcus Foligno,Marcus,Foligno,8475220
|
| 295 |
+
8722,Nico Daws,Nico,Daws,8482076
|
| 296 |
+
6430,Jonas Johansson,Jonas,Johansson,8477992
|
| 297 |
+
4754,Matt Martin,Matt,Martin,8474709
|
| 298 |
+
7498,Neal Pionk,Neal,Pionk,8480145
|
| 299 |
+
6005,Shea Theodore,Shea,Theodore,8477447
|
| 300 |
+
6811,Keegan Kolesar,Keegan,Kolesar,8478434
|
| 301 |
+
7108,David Rittich,David,Rittich,8479496
|
| 302 |
+
4979,Nick Bjugstad,Nick,Bjugstad,8475760
|
| 303 |
+
7886,Kevin Lankinen,Kevin,Lankinen,8480947
|
| 304 |
+
5995,Nikita Zadorov,Nikita,Zadorov,8477507
|
| 305 |
+
6113,Connor Clifton,Connor,Clifton,8477365
|
| 306 |
+
6375,Nikolaj Ehlers,Nikolaj,Ehlers,8477940
|
| 307 |
+
5077,Jani Hakanpaa,Jani,Hakanpaa,8475825
|
| 308 |
+
6779,Brandon Carlo,Brandon,Carlo,8478443
|
| 309 |
+
7084,Charlie Lindgren,Charlie,Lindgren,8479292
|
| 310 |
+
4684,Evander Kane,Evander,Kane,8475169
|
| 311 |
+
6080,Nicholas Paul,Nicholas,Paul,8477426
|
| 312 |
+
7936,Alexander Romanov,Alexander,Romanov,8481014
|
| 313 |
+
6089,Ryan Graves,Ryan,Graves,8477435
|
| 314 |
+
4969,Mikael Granlund,Mikael,Granlund,8475798
|
| 315 |
+
7429,Casey DeSmith,Casey,DeSmith,8479193
|
| 316 |
+
7493,Alex Iafallo,Alex,Iafallo,8480113
|
| 317 |
+
5734,Anthony Stolarz,Anthony,Stolarz,8476932
|
| 318 |
+
5994,Ryan Pulock,Ryan,Pulock,8477506
|
| 319 |
+
7545,Eeli Tolvanen,Eeli,Tolvanen,8480009
|
| 320 |
+
4706,Kyle Palmieri,Kyle,Palmieri,8475151
|
| 321 |
+
6037,William Carrier,William,Carrier,8477478
|
| 322 |
+
6797,Yakov Trenin,Yakov,Trenin,8478508
|
| 323 |
+
5776,Matt Grzelcyk,Matt,Grzelcyk,8476891
|
| 324 |
+
7321,Trevor Moore,Trevor,Moore,8479675
|
| 325 |
+
5227,Brayden McNabb,Brayden,McNabb,8475188
|
| 326 |
+
6936,Matt Roy,Matt,Roy,8478911
|
| 327 |
+
5765,Esa Lindell,Esa,Lindell,8476902
|
| 328 |
+
6083,Andrew Copp,Andrew,Copp,8477429
|
| 329 |
+
6838,Nicolas Roy,Nicolas,Roy,8478462
|
| 330 |
+
4971,Jack Campbell,Jack,Campbell,8475789
|
| 331 |
+
5783,Erik Gustafsson,Erik,Gustafsson,8476979
|
| 332 |
+
5251,Brenden Dillon,Brenden,Dillon,8475455
|
| 333 |
+
5703,Michael Matheson,Michael,Matheson,8476875
|
| 334 |
+
5733,Jake McCabe,Jake,McCabe,8476931
|
| 335 |
+
5406,Magnus Hellberg,Magnus,Hellberg,8476433
|
| 336 |
+
7961,Jack McBain,Jack,McBain,8480855
|
| 337 |
+
5345,Nicolas Deslauriers,Nicolas,Deslauriers,8475235
|
| 338 |
+
4008,Nick Foligno,Nick,Foligno,8473422
|
| 339 |
+
7927,Rasmus Sandin,Rasmus,Sandin,8480873
|
| 340 |
+
6985,Connor Ingram,Connor,Ingram,8478971
|
| 341 |
+
6039,Eric Comrie,Eric,Comrie,8477480
|
| 342 |
+
6109,Cal Petersen,Cal,Petersen,8477361
|
| 343 |
+
5739,Colton Sissons,Colton,Sissons,8476925
|
| 344 |
+
5840,Alexander Kerfoot,Alexander,Kerfoot,8477021
|
| 345 |
+
5810,Jaccob Slavin,Jaccob,Slavin,8476958
|
| 346 |
+
6784,Mackenzie Blackwood,Mackenzie,Blackwood,8478406
|
| 347 |
+
6785,Erik Cernak,Erik,Cernak,8478416
|
| 348 |
+
7618,Mikey Anderson,Mikey,Anderson,8479998
|
| 349 |
+
6290,Barclay Goodrow,Barclay,Goodrow,8476624
|
| 350 |
+
6739,Noel Acciari,Noel,Acciari,8478569
|
| 351 |
+
8249,Blake Lizotte,Blake,Lizotte,8481481
|
| 352 |
+
6388,Kasperi Kapanen,Kasperi,Kapanen,8477953
|
| 353 |
+
8652,Anton Lundell,Anton,Lundell,8482113
|
| 354 |
+
3614,Mark Giordano,Mark,Giordano,8470966
|
| 355 |
+
4773,Casey Cizikas,Casey,Cizikas,8475231
|
| 356 |
+
6002,Andre Burakovsky,Andre,Burakovsky,8477444
|
| 357 |
+
8119,Logan O'Connor,Logan,O'Connor,8481186
|
| 358 |
+
6436,Warren Foegele,Warren,Foegele,8477998
|
| 359 |
+
8871,Arvid Soderblom,Arvid,Soderblom,8482821
|
| 360 |
+
6555,Pierre Engvall,Pierre,Engvall,8478115
|
| 361 |
+
6544,Sammy Blais,Sammy,Blais,8478104
|
| 362 |
+
7950,Sean Durzi,Sean,Durzi,8480434
|
| 363 |
+
7944,Martin Fehervary,Martin,Fehervary,8480796
|
| 364 |
+
6425,Ryan Donato,Ryan,Donato,8477987
|
| 365 |
+
3988,Kyle Okposo,Kyle,Okposo,8473449
|
| 366 |
+
3990,Trevor Lewis,Trevor,Lewis,8473453
|
| 367 |
+
3349,Jeff Carter,Jeff,Carter,8470604
|
| 368 |
+
5749,Damon Severson,Damon,Severson,8476923
|
| 369 |
+
7737,Collin Delia,Collin,Delia,8480420
|
| 370 |
+
7124,Jakob Chychrun,Jakob,Chychrun,8479345
|
| 371 |
+
6814,Anthony Cirelli,Anthony,Cirelli,8478519
|
| 372 |
+
5130,Jesper Fast,Jesper,Fast,8475855
|
| 373 |
+
6834,Will Borgen,Will,Borgen,8478840
|
| 374 |
+
6117,Carson Soucy,Carson,Soucy,8477369
|
| 375 |
+
6038,Tyler Bertuzzi,Tyler,Bertuzzi,8477479
|
| 376 |
+
5085,Philipp Grubauer,Philipp,Grubauer,8475831
|
| 377 |
+
5024,Calle Jarnkrok,Calle,Jarnkrok,8475714
|
| 378 |
+
6046,Brett Pesce,Brett,Pesce,8477488
|
| 379 |
+
7044,Ryan Lomberg,Ryan,Lomberg,8479066
|
| 380 |
+
6406,Alex Nedeljkovic,Alex,Nedeljkovic,8477968
|
| 381 |
+
5375,Jamie Oleksiak,Jamie,Oleksiak,8476467
|
| 382 |
+
7601,Daniil Tarasov,Daniil,Tarasov,8480193
|
| 383 |
+
7532,Timothy Liljegren,Timothy,Liljegren,8480043
|
| 384 |
+
7983,Lukas Dostal,Lukas,Dostal,8480843
|
| 385 |
+
5958,Nick Jensen,Nick,Jensen,8475324
|
| 386 |
+
5696,Tom Wilson,Tom,Wilson,8476880
|
| 387 |
+
7537,Kailer Yamamoto,Kailer,Yamamoto,8479977
|
| 388 |
+
5987,Rasmus Ristolainen,Rasmus,Ristolainen,8477499
|
| 389 |
+
5544,Dylan DeMelo,Dylan,DeMelo,8476331
|
| 390 |
+
6799,Jonas Siegenthaler,Jonas,Siegenthaler,8478399
|
| 391 |
+
5841,Colin Miller,Colin,Miller,8476525
|
| 392 |
+
5388,Vladislav Namestnikov,Vladislav,Namestnikov,8476480
|
| 393 |
+
5411,Brandon Saad,Brandon,Saad,8476438
|
| 394 |
+
7652,Noah Cates,Noah,Cates,8480220
|
| 395 |
+
4252,Lars Eller,Lars,Eller,8474189
|
| 396 |
+
7265,Michael Pezzetta,Michael,Pezzetta,8479543
|
| 397 |
+
8280,Kaapo Kakko,Kaapo,Kakko,8481554
|
| 398 |
+
6350,Nic Dowd,Nic,Dowd,8475343
|
| 399 |
+
7524,Michael Rasmussen,Michael,Rasmussen,8479992
|
| 400 |
+
5027,Justin Holl,Justin,Holl,8475718
|
| 401 |
+
5573,Ondrej Palat,Ondrej,Palat,8476292
|
| 402 |
+
4257,Ian Cole,Ian,Cole,8474013
|
| 403 |
+
7521,Cody Glass,Cody,Glass,8479996
|
| 404 |
+
5757,Jimmy Vesey,Jimmy,Vesey,8476918
|
| 405 |
+
6794,Jeremy Lauzon,Jeremy,Lauzon,8478468
|
| 406 |
+
8311,Arthur Kaliyev,Arthur,Kaliyev,8481560
|
| 407 |
+
5695,Cody Ceci,Cody,Ceci,8476879
|
| 408 |
+
6407,Marcus Pettersson,Marcus,Pettersson,8477969
|
| 409 |
+
7112,Jesse Puljujarvi,Jesse,Puljujarvi,8479344
|
| 410 |
+
4194,Cal Clutterbuck,Cal,Clutterbuck,8473504
|
| 411 |
+
4753,Evgenii Dadonov,Evgenii,Dadonov,8474149
|
| 412 |
+
7120,Michael McLeod,Michael,McLeod,8479415
|
| 413 |
+
5756,Adam Pelech,Adam,Pelech,8476917
|
| 414 |
+
5795,Brett Kulak,Brett,Kulak,8476967
|
| 415 |
+
7155,Samuel Girard,Samuel,Girard,8479398
|
| 416 |
+
4805,Mike Hoffman,Mike,Hoffman,8474884
|
| 417 |
+
5498,Sean Kuraly,Sean,Kuraly,8476374
|
| 418 |
+
4253,Kevin Shattenkirk,Kevin,Shattenkirk,8474031
|
| 419 |
+
5402,Scott Mayfield,Scott,Mayfield,8476429
|
| 420 |
+
8294,Alex Newhook,Alex,Newhook,8481618
|
| 421 |
+
4964,Ryan Johansen,Ryan,Johansen,8475793
|
| 422 |
+
4352,Pat Maroon,Pat,Maroon,8474034
|
| 423 |
+
5632,Torey Krug,Torey,Krug,8476792
|
| 424 |
+
5777,Colton Parayko,Colton,Parayko,8476892
|
| 425 |
+
3987,Derick Brassard,Derick,Brassard,8473544
|
| 426 |
+
4147,Jonathan Quick,Jonathan,Quick,8471734
|
| 427 |
+
3979,Erik Johnson,Erik,Johnson,8473446
|
| 428 |
+
7157,Ryan Lindgren,Ryan,Lindgren,8479324
|
| 429 |
+
7499,David Kampf,David,Kampf,8480144
|
| 430 |
+
5714,Justin Schultz,Justin,Schultz,8474602
|
| 431 |
+
3345,Ryan Suter,Ryan,Suter,8470600
|
| 432 |
+
7546,Klim Kostin,Klim,Kostin,8480011
|
| 433 |
+
6774,Christian Fischer,Christian,Fischer,8478432
|
| 434 |
+
6496,Dakota Joshua,Dakota,Joshua,8478057
|
| 435 |
+
5932,Nate Schmidt,Nate,Schmidt,8477220
|
| 436 |
+
7165,Carl Grundstrom,Carl,Grundstrom,8479336
|
| 437 |
+
7213,Brandon Duhaime,Brandon,Duhaime,8479520
|
| 438 |
+
6576,Jake Middleton,Jake,Middleton,8478136
|
| 439 |
+
7549,Nicolas Hague,Nicolas,Hague,8479980
|
| 440 |
+
8877,Owen Power,Owen,Power,8482671
|
| 441 |
+
5659,Brian Dumoulin,Brian,Dumoulin,8475208
|
| 442 |
+
4306,Milan Lucic,Milan,Lucic,8473473
|
| 443 |
+
6827,Thomas Novak,Thomas,Novak,8478438
|
| 444 |
+
4771,Travis Hamonic,Travis,Hamonic,8474612
|
| 445 |
+
8659,Braden Schneider,Braden,Schneider,8482073
|
| 446 |
+
4186,Ryan Reaves,Ryan,Reaves,8471817
|
| 447 |
+
7911,Ty Dellandrea,Ty,Dellandrea,8480848
|
| 448 |
+
6812,Felix Sandstrom,Felix,Sandstrom,8478433
|
| 449 |
+
3789,Marc Staal,Marc,Staal,8471686
|
| 450 |
+
5104,John Klingberg,John,Klingberg,8475906
|
| 451 |
+
5435,Nick Cousins,Nick,Cousins,8476393
|
| 452 |
+
8069,Yegor Sharangovich,Yegor,Sharangovich,8481068
|
| 453 |
+
5396,Craig Smith,Craig,Smith,8475225
|
| 454 |
+
4978,Austin Watson,Austin,Watson,8475766
|
| 455 |
+
6749,Ivan Provorov,Ivan,Provorov,8478500
|
| 456 |
+
7582,Morgan Geekie,Morgan,Geekie,8479987
|
| 457 |
+
7689,Morgan Barron,Morgan,Barron,8480289
|
| 458 |
+
8645,Jake Sanderson,Jake,Sanderson,8482105
|
| 459 |
+
6481,Sam Lafferty,Sam,Lafferty,8478043
|
| 460 |
+
4369,James Reimer,James,Reimer,8473503
|
| 461 |
+
7569,Ukko-Pekka Luukkonen,Ukko-Pekka,Luukkonen,8480045
|
| 462 |
+
8376,Matias Maccelli,Matias,Maccelli,8481711
|
| 463 |
+
8262,Ilya Mikheyev,Ilya,Mikheyev,8481624
|
| 464 |
+
7928,Joe Veleno,Joe,Veleno,8480813
|
| 465 |
+
5693,Radek Faksa,Radek,Faksa,8476889
|
| 466 |
+
8282,Bowen Byram,Bowen,Byram,8481524
|
| 467 |
+
8245,Nico Sturm,Nico,Sturm,8481477
|
| 468 |
+
4241,James van Riemsdyk,James,van Riemsdyk,8474037
|
| 469 |
+
6792,Jordan Greenway,Jordan,Greenway,8478413
|
| 470 |
+
4251,Ryan McDonagh,Ryan,McDonagh,8474151
|
| 471 |
+
5539,Josh Archibald,Josh,Archibald,8476326
|
| 472 |
+
6451,Jake Walman,Jake,Walman,8478013
|
| 473 |
+
3365,Corey Perry,Corey,Perry,8470621
|
| 474 |
+
6901,Vladislav Gavrikov,Vladislav,Gavrikov,8478882
|
| 475 |
+
5999,Anthony Mantha,Anthony,Mantha,8477511
|
| 476 |
+
7149,Nathan Bastian,Nathan,Bastian,8479414
|
| 477 |
+
6862,Mathieu Joseph,Mathieu,Joseph,8478472
|
| 478 |
+
4786,Ryan O'Reilly,Ryan,O'Reilly,8475158
|
| 479 |
+
6383,Travis Sanheim,Travis,Sanheim,8477948
|
| 480 |
+
7138,Sam Steel,Sam,Steel,8479351
|
| 481 |
+
8935,J.J. Moser,J.J.,Moser,8482655
|
| 482 |
+
5772,Oskar Sundqvist,Oskar,Sundqvist,8476897
|
| 483 |
+
6382,Sonny Milano,Sonny,Milano,8477947
|
| 484 |
+
5694,Zemgus Girgensons,Zemgus,Girgensons,8476878
|
| 485 |
+
6458,Michael Amadio,Michael,Amadio,8478020
|
| 486 |
+
7160,Wade Allison,Wade,Allison,8479322
|
| 487 |
+
7628,Alexey Toropchenko,Alexey,Toropchenko,8480281
|
| 488 |
+
5371,Jonas Brodin,Jonas,Brodin,8476463
|
| 489 |
+
5687,Matt Dumba,Matt,Dumba,8476856
|
| 490 |
+
5279,Gustav Nyquist,Gustav,Nyquist,8474679
|
| 491 |
+
7859,Eric Robinson,Eric,Robinson,8480762
|
| 492 |
+
8648,Jack Quinn,Jack,Quinn,8482097
|
| 493 |
+
6417,Nicolas Aube-Kubel,Nicolas,Aube-Kubel,8477979
|
| 494 |
+
8595,Cole Smith,Cole,Smith,8482062
|
| 495 |
+
6896,John Marino,John,Marino,8478507
|
| 496 |
+
6984,Jalen Chatfield,Jalen,Chatfield,8478970
|
| 497 |
+
7851,Zach Whitecloud,Zach,Whitecloud,8480727
|
| 498 |
+
7193,Josh Mahura,Josh,Mahura,8479372
|
| 499 |
+
8650,Cole Perfetti,Cole,Perfetti,8482149
|
| 500 |
+
7538,Pierre-Olivier Joseph,Pierre-Olivier,Joseph,8480058
|
| 501 |
+
7125,Dante Fabbro,Dante,Fabbro,8479371
|
| 502 |
+
5263,Ben Chiarot,Ben,Chiarot,8475279
|
| 503 |
+
6616,Liam O'Brien,Liam,O'Brien,8477070
|
| 504 |
+
5381,Connor Murphy,Connor,Murphy,8476473
|
| 505 |
+
7829,Pius Suter,Pius,Suter,8480459
|
| 506 |
+
6741,Derek Ryan,Derek,Ryan,8478585
|
| 507 |
+
8012,Paul Cotter,Paul,Cotter,8481032
|
| 508 |
+
6928,Steven Lorentz,Steven,Lorentz,8478904
|
| 509 |
+
6539,Kevin Labanc,Kevin,Labanc,8478099
|
| 510 |
+
4424,Alec Martinez,Alec,Martinez,8474166
|
| 511 |
+
6869,Niko Mikkola,Niko,Mikkola,8478859
|
| 512 |
+
5736,Brock McGinn,Brock,McGinn,8476934
|
| 513 |
+
7930,Mattias Samuelsson,Mattias,Samuelsson,8480807
|
| 514 |
+
7531,Juuso Valimaki,Juuso,Valimaki,8479976
|
| 515 |
+
6754,Denis Gurianov,Denis,Gurianov,8478495
|
| 516 |
+
7909,Oliver Wahlstrom,Oliver,Wahlstrom,8480789
|
| 517 |
+
8614,Artem Zub,Artem,Zub,8482245
|
| 518 |
+
6353,Patrick Brown,Patrick,Brown,8477887
|
| 519 |
+
6008,Jason Dickinson,Jason,Dickinson,8477450
|
| 520 |
+
8881,Kent Johnson,Kent,Johnson,8482660
|
| 521 |
+
4975,Derek Forbort,Derek,Forbort,8475762
|
| 522 |
+
4485,Tyler Myers,Tyler,Myers,8474574
|
| 523 |
+
8295,Peyton Krebs,Peyton,Krebs,8481522
|
| 524 |
+
7684,Nick Perbix,Nick,Perbix,8480246
|
| 525 |
+
6819,Sam Montembeault,Sam,Montembeault,8478470
|
| 526 |
+
4935,Chris Tanev,Chris,Tanev,8475690
|
| 527 |
+
5496,Nick Seeler,Nick,Seeler,8476372
|
| 528 |
+
6366,Tomas Nosek,Tomas,Nosek,8477931
|
| 529 |
+
7990,Connor Dewar,Connor,Dewar,8480980
|
| 530 |
+
5256,Tyler Johnson,Tyler,Johnson,8474870
|
| 531 |
+
6059,Mattias Janmark,Mattias,Janmark,8477406
|
| 532 |
+
6340,Trevor van Riemsdyk,Trevor,van Riemsdyk,8477845
|
| 533 |
+
7135,Brett Howden,Brett,Howden,8479353
|
| 534 |
+
3802,Andrew Cogliano,Andrew,Cogliano,8471699
|
| 535 |
+
8642,Quinton Byfield,Quinton,Byfield,8482124
|
| 536 |
+
4963,Erik Gudbranson,Erik,Gudbranson,8475790
|
| 537 |
+
5542,Travis Boyd,Travis,Boyd,8476329
|
| 538 |
+
4694,Dmitry Kulikov,Dmitry,Kulikov,8475179
|
| 539 |
+
4686,Oliver Ekman-Larsson,Oliver,Ekman-Larsson,8475171
|
| 540 |
+
7654,Sebastian Aho,Sebastian,Aho,8480222
|
| 541 |
+
7938,Ryan McLeod,Ryan,McLeod,8480802
|
| 542 |
+
7384,Zack MacEwen,Zack,MacEwen,8479772
|
| 543 |
+
7578,Fabian Zetterlund,Fabian,Zetterlund,8480188
|
| 544 |
+
5996,Curtis Lazar,Curtis,Lazar,8477508
|
| 545 |
+
7551,Jesper Boqvist,Jesper,Boqvist,8480003
|
| 546 |
+
5343,Jakob Silfverberg,Jakob,Silfverberg,8475164
|
| 547 |
+
6060,Anthony Duclair,Anthony,Duclair,8477407
|
| 548 |
+
7118,Tyson Jost,Tyson,Jost,8479370
|
| 549 |
+
5741,Teddy Blueger,Teddy,Blueger,8476927
|
| 550 |
+
7832,Mark Kastelic,Mark,Kastelic,8480355
|
| 551 |
+
4589,Jake Allen,Jake,Allen,8474596
|
| 552 |
+
9154,Arber Xhekaj,Arber,Xhekaj,8482964
|
| 553 |
+
7828,Parker Kelly,Parker,Kelly,8480448
|
| 554 |
+
6859,Caleb Jones,Caleb,Jones,8478452
|
| 555 |
+
7123,Luke Kunin,Luke,Kunin,8479316
|
| 556 |
+
5525,Josh Manson,Josh,Manson,8476312
|
| 557 |
+
7514,Jan Rutta,Jan,Rutta,8480172
|
| 558 |
+
6387,Robby Fabbri,Robby,Fabbri,8477952
|
| 559 |
+
6400,Brendan Lemieux,Brendan,Lemieux,8477962
|
| 560 |
+
4692,Calvin de Haan,Calvin,de Haan,8475177
|
| 561 |
+
6174,Kyle Burroughs,Kyle,Burroughs,8477335
|
| 562 |
+
7889,Ilya Lyubushkin,Ilya,Lyubushkin,8480950
|
| 563 |
+
8485,Juuso Parssinen,Juuso,Parssinen,8481704
|
| 564 |
+
4696,Nick Leddy,Nick,Leddy,8475181
|
| 565 |
+
6781,A.J. Greer,A.J.,Greer,8478421
|
| 566 |
+
6910,Mason Appleton,Mason,Appleton,8478891
|
| 567 |
+
5702,Olli Maatta,Olli,Maatta,8476874
|
| 568 |
+
7589,Johnathan Kovacevic,Johnathan,Kovacevic,8480192
|
| 569 |
+
7530,Erik Brannstrom,Erik,Brannstrom,8480073
|
| 570 |
+
5415,Matt Nieto,Matt,Nieto,8476442
|
| 571 |
+
6043,Spencer Martin,Spencer,Martin,8477484
|
| 572 |
+
7332,Mathieu Olivier,Mathieu,Olivier,8479671
|
| 573 |
+
7816,Sheldon Dries,Sheldon,Dries,8480326
|
| 574 |
+
5976,Luke Glendening,Luke,Glendening,8476822
|
| 575 |
+
5114,Petr Mrazek,Petr,Mrazek,8475852
|
| 576 |
+
8152,Rafael Harvey-Pinard,Rafael,Harvey-Pinard,8481093
|
| 577 |
+
7142,Andrew Peeke,Andrew,Peeke,8479369
|
| 578 |
+
6857,Alexandre Carrier,Alexandre,Carrier,8478851
|
| 579 |
+
6427,Christian Dvorak,Christian,Dvorak,8477989
|
| 580 |
+
5004,Tyler Pitlick,Tyler,Pitlick,8475752
|
| 581 |
+
8674,JJ Peterka,JJ,Peterka,8482175
|
| 582 |
+
7951,Calen Addison,Calen,Addison,8480884
|
| 583 |
+
8229,Reese Johnson,Reese,Johnson,8481147
|
| 584 |
+
7129,Julien Gauthier,Julien,Gauthier,8479328
|
| 585 |
+
6232,Nathan Walker,Nathan,Walker,8477573
|
| 586 |
+
5120,Brendan Gallagher,Brendan,Gallagher,8475848
|
| 587 |
+
4838,Nick Bonino,Nick,Bonino,8474009
|
| 588 |
+
4266,Brendan Smith,Brendan,Smith,8474090
|
| 589 |
+
3777,Jack Johnson,Jack,Johnson,8471677
|
| 590 |
+
5899,Jaycob Megna,Jaycob,Megna,8477034
|
| 591 |
+
7906,Adam Boqvist,Adam,Boqvist,8480871
|
| 592 |
+
7152,Boris Katchouk,Boris,Katchouk,8479383
|
| 593 |
+
5982,Jonathan Drouin,Jonathan,Drouin,8477494
|
| 594 |
+
7506,Calle Rosen,Calle,Rosen,8480157
|
| 595 |
+
7624,Adam Ruzicka,Adam,Ruzicka,8480008
|
| 596 |
+
7947,Kirill Marchenko,Kirill,Marchenko,8480893
|
| 597 |
+
6097,Hudson Fasching,Hudson,Fasching,8477392
|
| 598 |
+
7931,Jonatan Berggren,Jonatan,Berggren,8481013
|
| 599 |
+
4473,Zach Bogosian,Zach,Bogosian,8474567
|
| 600 |
+
6132,Josh Brown,Josh,Brown,8477384
|
| 601 |
+
6573,Jake Evans,Jake,Evans,8478133
|
| 602 |
+
7926,Nils Lundkvist,Nils,Lundkvist,8480878
|
| 603 |
+
7751,Sean Walker,Sean,Walker,8480336
|
| 604 |
+
7584,MacKenzie Entwistle,MacKenzie,Entwistle,8480025
|
| 605 |
+
7632,Emil Bemstrom,Emil,Bemstrom,8480205
|
| 606 |
+
5864,Matt Benning,Matt,Benning,8476988
|
| 607 |
+
7558,Dylan Samberg,Dylan,Samberg,8480049
|
| 608 |
+
6506,Oskar Lindblom,Oskar,Lindblom,8478067
|
| 609 |
+
7132,Max Jones,Max,Jones,8479368
|
| 610 |
+
6365,Pierre-Edouard Bellemare,Pierre-Edouard,Bellemare,8477930
|
| 611 |
+
7918,Rasmus Kupari,Rasmus,Kupari,8480845
|
| 612 |
+
6379,Jakub Vrana,Jakub,Vrana,8477944
|
| 613 |
+
6477,Kaapo Kahkonen,Kaapo,Kahkonen,8478039
|
| 614 |
+
6021,Robert Hagg,Robert,Hagg,8477462
|
| 615 |
+
7540,Ryan Poehling,Ryan,Poehling,8480068
|
| 616 |
+
7093,Troy Stecher,Troy,Stecher,8479442
|
| 617 |
+
5985,Sean Monahan,Sean,Monahan,8477497
|
| 618 |
+
7544,Henri Jokiharju,Henri,Jokiharju,8480035
|
| 619 |
+
4881,Matt Irwin,Matt,Irwin,8475625
|
| 620 |
+
5950,Chad Ruhwedel,Chad,Ruhwedel,8477244
|
| 621 |
+
4953,David Savard,David,Savard,8475233
|
| 622 |
+
5377,Joel Armia,Joel,Armia,8476469
|
| 623 |
+
3982,Nicklas Backstrom,Nicklas,Backstrom,8473563
|
| 624 |
+
4287,Alex Goligoski,Alex,Goligoski,8471274
|
| 625 |
+
8288,Vasily Podkolzin,Vasily,Podkolzin,8481617
|
| 626 |
+
8292,Cam York,Cam,York,8481546
|
| 627 |
+
4758,Robert Bortuzzo,Robert,Bortuzzo,8474145
|
| 628 |
+
7529,Cal Foote,Cal,Foote,8479984
|
| 629 |
+
7969,Jordan Harris,Jordan,Harris,8480887
|
| 630 |
+
7564,Mario Ferraro,Mario,Ferraro,8479983
|
| 631 |
+
5011,Jon Merrill,Jon,Merrill,8475750
|
| 632 |
+
6750,Zach Werenski,Zach,Werenski,8478460
|
| 633 |
+
7534,Josh Norris,Josh,Norris,8480064
|
| 634 |
+
7168,Dylan Gambrell,Dylan,Gambrell,8479580
|
| 635 |
+
8369,Aliaksei Protas,Aliaksei,Protas,8481656
|
| 636 |
+
5117,Sam Carrick,Sam,Carrick,8475842
|
| 637 |
+
6409,Andreas Englund,Andreas,Englund,8477971
|
| 638 |
+
5727,Phillip Di Giuseppe,Phillip,Di Giuseppe,8476858
|
| 639 |
+
5904,Kurtis MacDermid,Kurtis,MacDermid,8477073
|
| 640 |
+
7098,Nikita Zaitsev,Nikita,Zaitsev,8479458
|
| 641 |
+
7252,Axel Jonsson-Fjallby,Axel,Jonsson-Fjallby,8479536
|
| 642 |
+
8654,Dylan Holloway,Dylan,Holloway,8482077
|
| 643 |
+
6445,Elvis Merzlikins,Elvis,Merzlikins,8478007
|
| 644 |
+
5837,Ben Hutton,Ben,Hutton,8477018
|
| 645 |
+
5414,Joel Edmundson,Joel,Edmundson,8476441
|
| 646 |
+
7141,Rasmus Asplund,Rasmus,Asplund,8479335
|
| 647 |
+
3829,Marc-Edouard Vlasic,Marc-Edouard,Vlasic,8471709
|
| 648 |
+
8665,Justin Barron,Justin,Barron,8482111
|
| 649 |
+
7904,Filip Zadina,Filip,Zadina,8480821
|
| 650 |
+
7220,Riley Stillman,Riley,Stillman,8479388
|
| 651 |
+
7921,Isac Lundestrom,Isac,Lundestrom,8480806
|
| 652 |
+
5559,Colin Blackwell,Colin,Blackwell,8476278
|
| 653 |
+
4261,Max Pacioretty,Max,Pacioretty,8474157
|
| 654 |
+
8865,Walker Duehr,Walker,Duehr,8482652
|
| 655 |
+
4982,Jarred Tinordi,Jarred,Tinordi,8475797
|
| 656 |
+
7869,Karson Kuhlman,Karson,Kuhlman,8480901
|
| 657 |
+
7154,Givani Smith,Givani,Smith,8479379
|
| 658 |
+
6800,Kevin Stenlund,Kevin,Stenlund,8478831
|
| 659 |
+
5710,Tanner Pearson,Tanner,Pearson,8476871
|
| 660 |
+
9243,Nick Blankenburg,Nick,Blankenburg,8483565
|
| 661 |
+
8656,Kaiden Guhle,Kaiden,Guhle,8482087
|
| 662 |
+
8318,Nils Hoglander,Nils,Hoglander,8481535
|
| 663 |
+
8885,Dylan Guenther,Dylan,Guenther,8482699
|
| 664 |
+
7773,Jacob MacDonald,Jacob,MacDonald,8479439
|
| 665 |
+
7556,Jaret Anderson-Dolan,Jaret,Anderson-Dolan,8479994
|
| 666 |
+
4633,Marco Scandella,Marco,Scandella,8474618
|
| 667 |
+
7940,Jack Drury,Jack,Drury,8480835
|
| 668 |
+
7824,Alex Belzile,Alex,Belzile,8475968
|
| 669 |
+
6346,Jordan Oesterle,Jordan,Oesterle,8477851
|
| 670 |
+
7288,Vincent Desharnais,Vincent,Desharnais,8479576
|
| 671 |
+
7126,Logan Stanley,Logan,Stanley,8479378
|
| 672 |
+
5859,Vinnie Hinostroza,Vinnie,Hinostroza,8476994
|
| 673 |
+
7907,Vitali Kravtsov,Vitali,Kravtsov,8480833
|
| 674 |
+
7184,Rem Pitlick,Rem,Pitlick,8479514
|
| 675 |
+
6087,Ben Harpur,Ben,Harpur,8477433
|
| 676 |
+
6974,Lane Pederson,Lane,Pederson,8478967
|
| 677 |
+
7568,Jack Studnicka,Jack,Studnicka,8480021
|
| 678 |
+
5282,Cam Atkinson,Cam,Atkinson,8474715
|
| 679 |
+
5638,Chris Wideman,Chris,Wideman,8475227
|
| 680 |
+
8286,Philip Broberg,Philip,Broberg,8481598
|
| 681 |
+
5464,Mike Reilly,Mike,Reilly,8476422
|
| 682 |
+
8806,Nils Aman,Nils,Aman,8482496
|
| 683 |
+
7508,Radim Simek,Radim,Simek,8480160
|
| 684 |
+
7121,Jake Bean,Jake,Bean,8479402
|
| 685 |
+
7547,Conor Timmins,Conor,Timmins,8479982
|
| 686 |
+
8598,Connor Mackey,Connor,Mackey,8482067
|
| 687 |
+
7171,Markus Niemelainen,Markus,Niemelainen,8479338
|
| 688 |
+
8666,Jake Neighbours,Jake,Neighbours,8482089
|
| 689 |
+
6180,Andreas Johnsson,Andreas,Johnsson,8477341
|
| 690 |
+
8056,Tim Berni,Tim,Berni,8481072
|
| 691 |
+
9269,Juraj Slafkovsky,Juraj,Slafkovsky,8483515
|
| 692 |
+
7958,David Gustafsson,David,Gustafsson,8481019
|
| 693 |
+
7916,Liam Foudy,Liam,Foudy,8480853
|
| 694 |
+
5744,Chris Tierney,Chris,Tierney,8476919
|
| 695 |
+
8304,Jakob Pelletier,Jakob,Pelletier,8481592
|
| 696 |
+
6833,Dennis Gilbert,Dennis,Gilbert,8478502
|
| 697 |
+
6466,Fredrik Olofsson,Fredrik,Olofsson,8478028
|
| 698 |
+
7647,Jacob Peterson,Jacob,Peterson,8480216
|
| 699 |
+
8646,Jamie Drysdale,Jamie,Drysdale,8482142
|
| 700 |
+
6955,Joel Hanley,Joel,Hanley,8477810
|
| 701 |
+
4819,Jake Muzzin,Jake,Muzzin,8474162
|
| 702 |
+
8335,Samuel Bolduc,Samuel,Bolduc,8481541
|
| 703 |
+
8331,Nicholas Robertson,Nicholas,Robertson,8481582
|
| 704 |
+
7119,Logan Brown,Logan,Brown,8479366
|
| 705 |
+
5846,Connor Brown,Connor,Brown,8477015
|
| 706 |
+
7194,Casey Fitzgerald,Casey,Fitzgerald,8479578
|
| 707 |
+
8334,Brett Leason,Brett,Leason,8481517
|
| 708 |
+
7929,Alexander Alexeyev,Alexander,Alexeyev,8480823
|
| 709 |
+
8868,Justin Danforth,Justin,Danforth,8479941
|
| 710 |
+
8301,Simon Holmstrom,Simon,Holmstrom,8481601
|
| 711 |
+
7320,Michael Carcone,Michael,Carcone,8479619
|
| 712 |
+
6721,Austin Czarnik,Austin,Czarnik,8478512
|
| 713 |
+
6755,Jakub Zboril,Jakub,Zboril,8478415
|
| 714 |
+
6283,Ross Johnston,Ross,Johnston,8477527
|
| 715 |
+
7159,Kale Clague,Kale,Clague,8479348
|
| 716 |
+
7445,Matt Luff,Matt,Luff,8479644
|
| 717 |
+
6373,Haydn Fleury,Haydn,Fleury,8477938
|
| 718 |
+
6805,Kyle Capobianco,Kyle,Capobianco,8478476
|
| 719 |
+
7553,Gustav Lindstrom,Gustav,Lindstrom,8480184
|
| 720 |
+
7695,Cole Guttman,Cole,Guttman,8480252
|
| 721 |
+
8199,Brayden Pachal,Brayden,Pachal,8481167
|
| 722 |
+
8863,Matt Kiersted,Matt,Kiersted,8482641
|
| 723 |
+
9246,Ben Meyers,Ben,Meyers,8483570
|
| 724 |
+
8097,Tyler Tucker,Tyler,Tucker,8481006
|
| 725 |
+
8300,Tobias Bjornfot,Tobias,Bjornfot,8481600
|
| 726 |
+
5902,Jayson Megna,Jayson,Megna,8477126
|
| 727 |
+
7274,Tanner Laczynski,Tanner,Laczynski,8479550
|
| 728 |
+
8296,Thomas Harley,Thomas,Harley,8481581
|
| 729 |
+
6643,Darren Raddysh,Darren,Raddysh,8478178
|
| 730 |
+
7572,Ian Mitchell,Ian,Mitchell,8480070
|
| 731 |
+
7614,Jacob Bryson,Jacob,Bryson,8480196
|
| 732 |
+
6776,Travis Dermott,Travis,Dermott,8478408
|
| 733 |
+
5369,Sean Couturier,Sean,Couturier,8476461
|
| 734 |
+
8373,Jordan Spence,Jordan,Spence,8481606
|
| 735 |
+
6839,Colton White,Colton,White,8478841
|
| 736 |
+
7374,Jeffrey Viel,Jeffrey,Viel,8479705
|
| 737 |
+
6854,Parker Wotherspoon,Parker,Wotherspoon,8478450
|
| 738 |
+
6107,Tucker Poolman,Tucker,Poolman,8477359
|
| 739 |
+
8647,Alexander Holtz,Alexander,Holtz,8482125
|
| 740 |
+
7116,Alex Nylander,Alex,Nylander,8479423
|
| 741 |
+
4834,Zac Dalpe,Zac,Dalpe,8474610
|
| 742 |
+
7217,Lucas Carlsson,Lucas,Carlsson,8479523
|
| 743 |
+
8305,Nolan Foote,Nolan,Foote,8481518
|
| 744 |
+
7207,Victor Mete,Victor,Mete,8479376
|
| 745 |
+
6808,Guillaume Brisebois,Guillaume,Brisebois,8478465
|
| 746 |
+
8131,Egor Zamula,Egor,Zamula,8481178
|
| 747 |
+
30150,Akito Hirose,Akito,Hirose,8484254
|
| 748 |
+
9272,Shane Wright,Shane,Wright,8483524
|
| 749 |
+
30124,Tyler Kleven,Tyler,Kleven,8482095
|
| 750 |
+
8884,Brandt Clarke,Brandt,Clarke,8482730
|
| 751 |
+
30000,Nikita Nesterenko,Nikita,Nesterenko,8481754
|
| 752 |
+
30115,Hunter McKown,Hunter,McKown,8484125
|
| 753 |
+
7100,Drake Caggiula,Drake,Caggiula,8479465
|
| 754 |
+
7219,Jacob Moverare,Jacob,Moverare,8479421
|
| 755 |
+
7943,Scott Perunovich,Scott,Perunovich,8481059
|
| 756 |
+
30104,Wyatt Kaiser,Wyatt,Kaiser,8482176
|
| 757 |
+
30173,Cole McWard,Cole,McWard,8484287
|
| 758 |
+
30227,Matthew Knies,Matthew,Knies,8482720
|
| 759 |
+
7533,Urho Vaakanainen,Urho,Vaakanainen,8480001
|
| 760 |
+
4691,Ryan Ellis,Ryan,Ellis,8475176
|
| 761 |
+
8378,Matej Blumel,Matej,Blumel,8481712
|
| 762 |
+
7522,Lias Andersson,Lias,Andersson,8480072
|
| 763 |
+
5758,Mackenzie MacEachern,Mackenzie,MacEachern,8476907
|
| 764 |
+
30106,Aidan McDonough,Aidan,McDonough,8481683
|
| 765 |
+
7133,Riley Tufte,Riley,Tufte,8479362
|
| 766 |
+
30145,Matt Coronato,Matt,Coronato,8482679
|
| 767 |
+
30128,Henry Thrun,Henry,Thrun,8481567
|
| 768 |
+
30075,Brock Faber,Brock,Faber,8482122
|
| 769 |
+
30129,Sean Farrell,Sean,Farrell,8482081
|
| 770 |
+
9276,Marco Kasper,Marco,Kasper,8483464
|
| 771 |
+
8713,Jean-Luc Foudy,Jean-Luc,Foudy,8482147
|
| 772 |
+
8882,Simon Edvinsson,Simon,Edvinsson,8482762
|
| 773 |
+
7222,Rhett Gardner,Rhett,Gardner,8479587
|
| 774 |
+
7750,Philippe Maillet,Philippe,Maillet,8477544
|
| 775 |
+
8347,John Ludvig,John,Ludvig,8481206
|
| 776 |
+
30139,Alex Laferriere,Alex,Laferriere,8482155
|
| 777 |
+
7973,Oskar Back,Oskar,Back,8480840
|
| 778 |
+
8333,Dillon Hamaliuk,Dillon,Hamaliuk,8481549
|
| 779 |
+
8306,Ryan Suzuki,Ryan,Suzuki,8481576
|
| 780 |
+
9270,Simon Nemec,Simon,Nemec,8483495
|
| 781 |
+
9233,Brian Halonen,Brian,Halonen,8483531
|
| 782 |
+
6863,Ryan Shea,Ryan,Shea,8478854
|
| 783 |
+
8322,Jamieson Rees,Jamieson,Rees,8481579
|
| 784 |
+
30251,Mike Benning,Mike,Benning,8482107
|
| 785 |
+
8917,Francesco Pinelli,Francesco,Pinelli,8482748
|
| 786 |
+
8465,Andre Lee,Andre,Lee,8481732
|
| 787 |
+
9004,Topias Vilen,Topias,Vilen,8482873
|
| 788 |
+
8934,Samuel Helenius,Samuel,Helenius,8482726
|
| 789 |
+
5009,Alexander Petrovic,Alexander,Petrovic,8475755
|
| 790 |
+
30832,Logan Cooley,Logan,Cooley,8483431
|
| 791 |
+
8374,Tyce Thompson,Tyce,Thompson,8481740
|
| 792 |
+
30154,Jackson LaCombe,Jackson,LaCombe,8481605
|
| 793 |
+
8494,Nikolai Knyzhov,Nikolai,Knyzhov,8481812
|
| 794 |
+
8649,Marco Rossi,Marco,Rossi,8482079
|
| 795 |
+
8657,Lukas Reichel,Lukas,Reichel,8482117
|
| 796 |
+
5993,Alex Wennberg,Alex,Wennberg,8477505
|
| 797 |
+
6517,Rourke Chartier,Rourke,Chartier,8478078
|
| 798 |
+
6789,Jansen Harkins,Jansen,Harkins,8478424
|
| 799 |
+
6768,Noah Juulsen,Noah,Juulsen,8478454
|
| 800 |
+
7933,Jesse Ylonen,Jesse,Yl�nen,8481058
|
| 801 |
+
8302,Philip Tomasino,Philip,Tomasino,8481577
|
| 802 |
+
8668,Ridly Greig,Ridly,Greig,8482092
|
| 803 |
+
8682,Luke Evangelista,Luke,Evangelista,8482146
|
| 804 |
+
9275,Kevin Korchinski,Kevin,Korchinski,8483466
|
| 805 |
+
9322,Matthew Poitras,Matthew,Poitras,8483505
|