Spaces:
Sleeping
Sleeping
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
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
|