James McCool commited on
Commit
8f7601b
·
1 Parent(s): 66ff806

Refactor init_baselines function in app.py to accept a slate variable, allowing dynamic filtering of player data based on the selected slate. Update all relevant calls to init_baselines to ensure consistency across the application. Adjust sharp_split values for improved simulation accuracy. This enhances flexibility in data retrieval for DraftKings and FanDuel contests.

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