James McCool commited on
Commit
cf45400
·
1 Parent(s): 337c221

Update init_baselines function in app.py to accept a slate variable, allowing dynamic filtering of player data based on the selected slate. Adjusted multiple instances throughout the code to ensure consistent data retrieval for both 'Main Slate' and 'Secondary Slate'. Additionally, refined sharp_split values for improved performance in simulations. This enhances flexibility and user experience in DraftKings and FanDuel simulations.

Browse files
Files changed (1) hide show
  1. app.py +26 -13
app.py CHANGED
@@ -106,12 +106,12 @@ def init_FD_Secondary_seed_frames(sharp_split):
106
  return FD_seed
107
 
108
  @st.cache_data(ttl = 599)
109
- def init_baselines():
110
  collection = db["DK_NFL_ROO"]
111
  cursor = collection.find()
112
 
113
  raw_display = pd.DataFrame(list(cursor))
114
- raw_display = raw_display[raw_display['slate'] == 'Main Slate']
115
  raw_display = raw_display[raw_display['version'] == 'overall']
116
  dk_raw = raw_display[['Player', 'Position', 'Team', 'Opp', 'Salary', 'Floor', 'Median', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '20+%', '2x%', '3x%', '4x%',
117
  'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
@@ -121,7 +121,7 @@ def init_baselines():
121
  cursor = collection.find()
122
 
123
  raw_display = pd.DataFrame(list(cursor))
124
- raw_display = raw_display[raw_display['slate'] == 'Main Slate']
125
  raw_display = raw_display[raw_display['version'] == 'overall']
126
  fd_raw = raw_display[['Player', 'Position', 'Team', 'Opp', 'Salary', 'Floor', 'Median', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '20+%', '2x%', '3x%', '4x%',
127
  'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
@@ -179,10 +179,6 @@ def sim_contest(Sim_size, seed_frame, maps_dict, Contest_Size):
179
 
180
  return Sim_Winners
181
 
182
- dk_raw, fd_raw = init_baselines()
183
- dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_id))
184
- fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_id))
185
-
186
  tab1, tab2 = st.tabs(['Contest Sims', 'Data Export'])
187
  with tab2:
188
  col1, col2 = st.columns([1, 7])
@@ -193,7 +189,7 @@ with tab2:
193
  del st.session_state[key]
194
  DK_seed = init_DK_seed_frames(10000)
195
  FD_seed = init_FD_seed_frames(10000)
196
- dk_raw, fd_raw = init_baselines()
197
  dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_id))
198
  fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_id))
199
 
@@ -205,8 +201,10 @@ with tab2:
205
 
206
  team_var1 = st.radio("Do you want a frame with specific teams?", ('Full Slate', 'Specific Teams'), key='team_var1')
207
  if team_var1 == 'Specific Teams':
 
208
  team_var2 = st.multiselect('Which teams do you want?', options = dk_raw['Team'].unique())
209
  elif team_var1 == 'Full Slate':
 
210
  team_var2 = dk_raw.Team.values.tolist()
211
 
212
  stack_var1 = st.radio("Do you want a frame with specific stack sizes?", ('Full Slate', 'Specific Stack Sizes'), key='stack_var1')
@@ -219,8 +217,10 @@ with tab2:
219
 
220
  team_var1 = st.radio("Do you want a frame with specific teams?", ('Full Slate', 'Specific Teams'), key='team_var1')
221
  if team_var1 == 'Specific Teams':
 
222
  team_var2 = st.multiselect('Which teams do you want?', options = fd_raw['Team'].unique())
223
  elif team_var1 == 'Full Slate':
 
224
  team_var2 = fd_raw.Team.values.tolist()
225
 
226
  stack_var1 = st.radio("Do you want a frame with specific stack sizes?", ('Full Slate', 'Specific Stack Sizes'), key='stack_var1')
@@ -279,9 +279,12 @@ with tab2:
279
  if slate_var1 == 'Main Slate':
280
  st.session_state.working_seed = init_DK_seed_frames(sharp_split_var)
281
  dk_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_id))
 
 
282
  elif slate_var1 == 'Secondary Slate':
283
  st.session_state.working_seed = init_DK_Secondary_seed_frames(sharp_split_var)
284
  dk_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_id))
 
285
 
286
  raw_baselines = dk_raw
287
  column_names = dk_columns
@@ -299,9 +302,11 @@ with tab2:
299
  if slate_var1 == 'Main Slate':
300
  st.session_state.working_seed = init_FD_seed_frames(sharp_split_var)
301
  fd_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_id))
 
302
  elif slate_var1 == 'Secondary Slate':
303
  st.session_state.working_seed = init_FD_Secondary_seed_frames(sharp_split_var)
304
  fd_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_id))
 
305
 
306
  raw_baselines = fd_raw
307
  column_names = fd_columns
@@ -322,7 +327,7 @@ with tab1:
322
  del st.session_state[key]
323
  DK_seed = init_DK_seed_frames(10000)
324
  FD_seed = init_FD_seed_frames(10000)
325
- dk_raw, fd_raw = init_baselines()
326
  dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_id))
327
  fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_id))
328
 
@@ -342,13 +347,13 @@ with tab1:
342
  if strength_var1 == 'Not Very':
343
  sharp_split = 500000
344
  elif strength_var1 == 'Below Average':
345
- sharp_split = 400000
346
  elif strength_var1 == 'Average':
347
- sharp_split = 300000
348
  elif strength_var1 == 'Above Average':
349
- sharp_split = 200000
350
  elif strength_var1 == 'Very':
351
- sharp_split = 100000
352
 
353
 
354
  with col2:
@@ -390,16 +395,24 @@ with tab1:
390
  if sim_site_var1 == 'Draftkings':
391
  if sim_slate_var1 == 'Main Slate':
392
  st.session_state.working_seed = init_DK_seed_frames(sharp_split)
 
 
393
  elif sim_slate_var1 == 'Secondary Slate':
394
  st.session_state.working_seed = init_DK_Secondary_seed_frames(sharp_split)
 
 
395
 
396
  raw_baselines = dk_raw
397
  column_names = dk_columns
398
  elif sim_site_var1 == 'Fanduel':
399
  if sim_slate_var1 == 'Main Slate':
400
  st.session_state.working_seed = init_FD_seed_frames(sharp_split)
 
 
401
  elif sim_slate_var1 == 'Secondary Slate':
402
  st.session_state.working_seed = init_FD_Secondary_seed_frames(sharp_split)
 
 
403
 
404
  raw_baselines = fd_raw
405
  column_names = fd_columns
 
106
  return FD_seed
107
 
108
  @st.cache_data(ttl = 599)
109
+ def init_baselines(slate_var):
110
  collection = db["DK_NFL_ROO"]
111
  cursor = collection.find()
112
 
113
  raw_display = pd.DataFrame(list(cursor))
114
+ raw_display = raw_display[raw_display['slate'] == slate_var]
115
  raw_display = raw_display[raw_display['version'] == 'overall']
116
  dk_raw = raw_display[['Player', 'Position', 'Team', 'Opp', 'Salary', 'Floor', 'Median', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '20+%', '2x%', '3x%', '4x%',
117
  'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
 
121
  cursor = collection.find()
122
 
123
  raw_display = pd.DataFrame(list(cursor))
124
+ raw_display = raw_display[raw_display['slate'] == slate_var]
125
  raw_display = raw_display[raw_display['version'] == 'overall']
126
  fd_raw = raw_display[['Player', 'Position', 'Team', 'Opp', 'Salary', 'Floor', 'Median', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '20+%', '2x%', '3x%', '4x%',
127
  'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
 
179
 
180
  return Sim_Winners
181
 
 
 
 
 
182
  tab1, tab2 = st.tabs(['Contest Sims', 'Data Export'])
183
  with tab2:
184
  col1, col2 = st.columns([1, 7])
 
189
  del st.session_state[key]
190
  DK_seed = init_DK_seed_frames(10000)
191
  FD_seed = init_FD_seed_frames(10000)
192
+ dk_raw, fd_raw = init_baselines('Main Slate')
193
  dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_id))
194
  fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_id))
195
 
 
201
 
202
  team_var1 = st.radio("Do you want a frame with specific teams?", ('Full Slate', 'Specific Teams'), key='team_var1')
203
  if team_var1 == 'Specific Teams':
204
+ dk_raw, fd_raw = init_baselines('Main Slate')
205
  team_var2 = st.multiselect('Which teams do you want?', options = dk_raw['Team'].unique())
206
  elif team_var1 == 'Full Slate':
207
+ dk_raw, fd_raw = init_baselines('Main Slate')
208
  team_var2 = dk_raw.Team.values.tolist()
209
 
210
  stack_var1 = st.radio("Do you want a frame with specific stack sizes?", ('Full Slate', 'Specific Stack Sizes'), key='stack_var1')
 
217
 
218
  team_var1 = st.radio("Do you want a frame with specific teams?", ('Full Slate', 'Specific Teams'), key='team_var1')
219
  if team_var1 == 'Specific Teams':
220
+ dk_raw, fd_raw = init_baselines('Main Slate')
221
  team_var2 = st.multiselect('Which teams do you want?', options = fd_raw['Team'].unique())
222
  elif team_var1 == 'Full Slate':
223
+ dk_raw, fd_raw = init_baselines('Main Slate')
224
  team_var2 = fd_raw.Team.values.tolist()
225
 
226
  stack_var1 = st.radio("Do you want a frame with specific stack sizes?", ('Full Slate', 'Specific Stack Sizes'), key='stack_var1')
 
279
  if slate_var1 == 'Main Slate':
280
  st.session_state.working_seed = init_DK_seed_frames(sharp_split_var)
281
  dk_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_id))
282
+ dk_raw, fd_raw = init_baselines('Main Slate')
283
+
284
  elif slate_var1 == 'Secondary Slate':
285
  st.session_state.working_seed = init_DK_Secondary_seed_frames(sharp_split_var)
286
  dk_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_id))
287
+ dk_raw, fd_raw = init_baselines('Secondary Slate')
288
 
289
  raw_baselines = dk_raw
290
  column_names = dk_columns
 
302
  if slate_var1 == 'Main Slate':
303
  st.session_state.working_seed = init_FD_seed_frames(sharp_split_var)
304
  fd_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_id))
305
+ dk_raw, fd_raw = init_baselines('Main Slate')
306
  elif slate_var1 == 'Secondary Slate':
307
  st.session_state.working_seed = init_FD_Secondary_seed_frames(sharp_split_var)
308
  fd_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_id))
309
+ dk_raw, fd_raw = init_baselines('Secondary Slate')
310
 
311
  raw_baselines = fd_raw
312
  column_names = fd_columns
 
327
  del st.session_state[key]
328
  DK_seed = init_DK_seed_frames(10000)
329
  FD_seed = init_FD_seed_frames(10000)
330
+ dk_raw, fd_raw = init_baselines('Main Slate')
331
  dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_id))
332
  fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_id))
333
 
 
347
  if strength_var1 == 'Not Very':
348
  sharp_split = 500000
349
  elif strength_var1 == 'Below Average':
350
+ sharp_split = 250000
351
  elif strength_var1 == 'Average':
352
+ sharp_split = 100000
353
  elif strength_var1 == 'Above Average':
354
+ sharp_split = 50000
355
  elif strength_var1 == 'Very':
356
+ sharp_split = 10000
357
 
358
 
359
  with col2:
 
395
  if sim_site_var1 == 'Draftkings':
396
  if sim_slate_var1 == 'Main Slate':
397
  st.session_state.working_seed = init_DK_seed_frames(sharp_split)
398
+ dk_raw, fd_raw = init_baselines('Main Slate')
399
+ dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_id))
400
  elif sim_slate_var1 == 'Secondary Slate':
401
  st.session_state.working_seed = init_DK_Secondary_seed_frames(sharp_split)
402
+ dk_raw, fd_raw = init_baselines('Secondary Slate')
403
+ dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_id))
404
 
405
  raw_baselines = dk_raw
406
  column_names = dk_columns
407
  elif sim_site_var1 == 'Fanduel':
408
  if sim_slate_var1 == 'Main Slate':
409
  st.session_state.working_seed = init_FD_seed_frames(sharp_split)
410
+ dk_raw, fd_raw = init_baselines('Main Slate')
411
+ fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_id))
412
  elif sim_slate_var1 == 'Secondary Slate':
413
  st.session_state.working_seed = init_FD_Secondary_seed_frames(sharp_split)
414
+ dk_raw, fd_raw = init_baselines('Secondary Slate')
415
+ fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_id))
416
 
417
  raw_baselines = fd_raw
418
  column_names = fd_columns