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
|