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
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'] ==
|
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'] ==
|
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 =
|
346 |
elif strength_var1 == 'Average':
|
347 |
-
sharp_split =
|
348 |
elif strength_var1 == 'Above Average':
|
349 |
-
sharp_split =
|
350 |
elif strength_var1 == 'Very':
|
351 |
-
sharp_split =
|
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
|