James McCool
commited on
Commit
·
b5c6df7
1
Parent(s):
8015573
segmented controllers rather than tabs
Browse files- src/streamlit_app.py +185 -140
src/streamlit_app.py
CHANGED
|
@@ -25,6 +25,42 @@ freq_format = {'Exposure': '{:.2%}', 'Proj Own': '{:.2%}', 'Edge': '{:.2%}'}
|
|
| 25 |
dk_columns = ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
|
| 26 |
fd_columns = ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
|
| 27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
@st.cache_data(ttl = 600)
|
| 29 |
def init_DK_seed_frames(sharp_split):
|
| 30 |
|
|
@@ -183,146 +219,17 @@ def sim_contest(Sim_size, seed_frame, maps_dict, Contest_Size):
|
|
| 183 |
|
| 184 |
return Sim_Winners
|
| 185 |
|
| 186 |
-
|
| 187 |
-
|
| 188 |
-
|
| 189 |
-
|
| 190 |
-
|
| 191 |
-
|
| 192 |
-
|
| 193 |
-
|
| 194 |
-
|
| 195 |
-
FD_seed = init_FD_seed_frames(10000)
|
| 196 |
-
dk_raw, fd_raw = init_baselines('Main Slate')
|
| 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 |
-
|
| 200 |
-
slate_var1 = st.radio("Which data are you loading?", ('Main Slate', 'Secondary Slate'))
|
| 201 |
-
site_var1 = st.radio("What site are you working with?", ('Draftkings', 'Fanduel'))
|
| 202 |
-
sharp_split_var = st.number_input("How many lineups do you want?", value=10000, max_value=500000, min_value=10000, step=10000)
|
| 203 |
-
|
| 204 |
-
if site_var1 == 'Draftkings':
|
| 205 |
|
| 206 |
-
|
| 207 |
-
if team_var1 == 'Specific Teams':
|
| 208 |
-
dk_raw, fd_raw = init_baselines('Main Slate')
|
| 209 |
-
team_var2 = st.multiselect('Which teams do you want?', options = dk_raw['Team'].unique())
|
| 210 |
-
elif team_var1 == 'Full Slate':
|
| 211 |
-
dk_raw, fd_raw = init_baselines('Main Slate')
|
| 212 |
-
team_var2 = dk_raw.Team.values.tolist()
|
| 213 |
-
|
| 214 |
-
stack_var1 = st.radio("Do you want a frame with specific stack sizes?", ('Full Slate', 'Specific Stack Sizes'), key='stack_var1')
|
| 215 |
-
if stack_var1 == 'Specific Stack Sizes':
|
| 216 |
-
stack_var2 = st.multiselect('Which stack sizes do you want?', options = [5, 4, 3, 2, 1, 0])
|
| 217 |
-
elif stack_var1 == 'Full Slate':
|
| 218 |
-
stack_var2 = [5, 4, 3, 2, 1, 0]
|
| 219 |
-
|
| 220 |
-
elif site_var1 == 'Fanduel':
|
| 221 |
-
|
| 222 |
-
team_var1 = st.radio("Do you want a frame with specific teams?", ('Full Slate', 'Specific Teams'), key='team_var1')
|
| 223 |
-
if team_var1 == 'Specific Teams':
|
| 224 |
-
dk_raw, fd_raw = init_baselines('Main Slate')
|
| 225 |
-
team_var2 = st.multiselect('Which teams do you want?', options = fd_raw['Team'].unique())
|
| 226 |
-
elif team_var1 == 'Full Slate':
|
| 227 |
-
dk_raw, fd_raw = init_baselines('Main Slate')
|
| 228 |
-
team_var2 = fd_raw.Team.values.tolist()
|
| 229 |
-
|
| 230 |
-
stack_var1 = st.radio("Do you want a frame with specific stack sizes?", ('Full Slate', 'Specific Stack Sizes'), key='stack_var1')
|
| 231 |
-
if stack_var1 == 'Specific Stack Sizes':
|
| 232 |
-
stack_var2 = st.multiselect('Which stack sizes do you want?', options = [5, 4, 3, 2, 1, 0])
|
| 233 |
-
elif stack_var1 == 'Full Slate':
|
| 234 |
-
stack_var2 = [5, 4, 3, 2, 1, 0]
|
| 235 |
-
|
| 236 |
-
|
| 237 |
-
if st.button("Prepare data export", key='data_export'):
|
| 238 |
-
if 'working_seed' in st.session_state:
|
| 239 |
-
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 11], team_var2)]
|
| 240 |
-
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 12], stack_var2)]
|
| 241 |
-
elif 'working_seed' not in st.session_state:
|
| 242 |
-
if site_var1 == 'Draftkings':
|
| 243 |
-
if slate_var1 == 'Main Slate':
|
| 244 |
-
st.session_state.working_seed = init_DK_seed_frames(sharp_split_var)
|
| 245 |
-
dk_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_ID))
|
| 246 |
-
elif slate_var1 == 'Secondary Slate':
|
| 247 |
-
st.session_state.working_seed = init_DK_Secondary_seed_frames(sharp_split_var)
|
| 248 |
-
dk_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_ID))
|
| 249 |
-
|
| 250 |
-
raw_baselines = dk_raw
|
| 251 |
-
column_names = dk_columns
|
| 252 |
-
|
| 253 |
-
elif site_var1 == 'Fanduel':
|
| 254 |
-
if slate_var1 == 'Main Slate':
|
| 255 |
-
st.session_state.working_seed = init_FD_seed_frames(sharp_split_var)
|
| 256 |
-
fd_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_ID))
|
| 257 |
-
elif slate_var1 == 'Secondary Slate':
|
| 258 |
-
st.session_state.working_seed = init_FD_Secondary_seed_frames(sharp_split_var)
|
| 259 |
-
fd_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_ID))
|
| 260 |
-
|
| 261 |
-
raw_baselines = fd_raw
|
| 262 |
-
column_names = fd_columns
|
| 263 |
-
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 11], team_var2)]
|
| 264 |
-
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 12], stack_var2)]
|
| 265 |
-
data_export = st.session_state.working_seed.copy()
|
| 266 |
-
for col in range(9):
|
| 267 |
-
data_export[:, col] = np.array([dk_id_dict.get(x, x) for x in data_export[:, col]])
|
| 268 |
-
st.download_button(
|
| 269 |
-
label="Export optimals set",
|
| 270 |
-
data=convert_df(data_export),
|
| 271 |
-
file_name='NFL_optimals_export.csv',
|
| 272 |
-
mime='text/csv',
|
| 273 |
-
)
|
| 274 |
-
|
| 275 |
-
with col2:
|
| 276 |
-
if st.button("Load Data", key='load_data'):
|
| 277 |
-
if site_var1 == 'Draftkings':
|
| 278 |
-
if 'working_seed' in st.session_state:
|
| 279 |
-
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 11], team_var2)]
|
| 280 |
-
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 12], stack_var2)]
|
| 281 |
-
st.session_state.data_export_display = pd.DataFrame(st.session_state.working_seed[0:1000], columns=column_names)
|
| 282 |
-
elif 'working_seed' not in st.session_state:
|
| 283 |
-
if slate_var1 == 'Main Slate':
|
| 284 |
-
st.session_state.working_seed = init_DK_seed_frames(sharp_split_var)
|
| 285 |
-
dk_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_ID))
|
| 286 |
-
dk_raw, fd_raw = init_baselines('Main Slate')
|
| 287 |
-
|
| 288 |
-
elif slate_var1 == 'Secondary Slate':
|
| 289 |
-
st.session_state.working_seed = init_DK_Secondary_seed_frames(sharp_split_var)
|
| 290 |
-
dk_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_ID))
|
| 291 |
-
dk_raw, fd_raw = init_baselines('Secondary Slate')
|
| 292 |
-
|
| 293 |
-
raw_baselines = dk_raw
|
| 294 |
-
column_names = dk_columns
|
| 295 |
-
|
| 296 |
-
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 11], team_var2)]
|
| 297 |
-
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 12], stack_var2)]
|
| 298 |
-
st.session_state.data_export_display = pd.DataFrame(st.session_state.working_seed[0:1000], columns=column_names)
|
| 299 |
-
|
| 300 |
-
elif site_var1 == 'Fanduel':
|
| 301 |
-
if 'working_seed' in st.session_state:
|
| 302 |
-
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 11], team_var2)]
|
| 303 |
-
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 12], stack_var2)]
|
| 304 |
-
st.session_state.data_export_display = pd.DataFrame(st.session_state.working_seed[0:1000], columns=column_names)
|
| 305 |
-
elif 'working_seed' not in st.session_state:
|
| 306 |
-
if slate_var1 == 'Main Slate':
|
| 307 |
-
st.session_state.working_seed = init_FD_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('Main Slate')
|
| 310 |
-
elif slate_var1 == 'Secondary Slate':
|
| 311 |
-
st.session_state.working_seed = init_FD_Secondary_seed_frames(sharp_split_var)
|
| 312 |
-
fd_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_ID))
|
| 313 |
-
dk_raw, fd_raw = init_baselines('Secondary Slate')
|
| 314 |
-
|
| 315 |
-
raw_baselines = fd_raw
|
| 316 |
-
column_names = fd_columns
|
| 317 |
-
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 11], team_var2)]
|
| 318 |
-
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 12], stack_var2)]
|
| 319 |
-
st.session_state.data_export_display = pd.DataFrame(st.session_state.working_seed[0:1000], columns=column_names)
|
| 320 |
-
|
| 321 |
-
with st.container():
|
| 322 |
-
if 'data_export_display' in st.session_state:
|
| 323 |
-
st.dataframe(st.session_state.data_export_display.style.format(freq_format, precision=2), use_container_width = True)
|
| 324 |
-
|
| 325 |
-
with tab1:
|
| 326 |
col1, col2 = st.columns([1, 7])
|
| 327 |
with col1:
|
| 328 |
if st.button("Load/Reset Data", key='reset2'):
|
|
@@ -799,4 +706,142 @@ with tab1:
|
|
| 799 |
file_name='team_freq.csv',
|
| 800 |
mime='text/csv',
|
| 801 |
key='team'
|
| 802 |
-
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
dk_columns = ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
|
| 26 |
fd_columns = ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
|
| 27 |
|
| 28 |
+
st.markdown("""
|
| 29 |
+
<style>
|
| 30 |
+
/* Tab styling */
|
| 31 |
+
.stElementContainer [data-baseweb="button-group"] {
|
| 32 |
+
gap: 8px;
|
| 33 |
+
padding: 4px;
|
| 34 |
+
}
|
| 35 |
+
.stElementContainer [kind="segmented_control"] {
|
| 36 |
+
height: 45px;
|
| 37 |
+
white-space: pre-wrap;
|
| 38 |
+
background-color: #DAA520;
|
| 39 |
+
color: white;
|
| 40 |
+
border-radius: 10px;
|
| 41 |
+
gap: 1px;
|
| 42 |
+
padding: 10px 20px;
|
| 43 |
+
font-weight: bold;
|
| 44 |
+
transition: all 0.3s ease;
|
| 45 |
+
}
|
| 46 |
+
.stElementContainer [kind="segmented_controlActive"] {
|
| 47 |
+
height: 50px;
|
| 48 |
+
background-color: #DAA520;
|
| 49 |
+
border: 3px solid #FFD700;
|
| 50 |
+
color: white;
|
| 51 |
+
}
|
| 52 |
+
.stElementContainer [kind="segmented_control"]:hover {
|
| 53 |
+
background-color: #FFD700;
|
| 54 |
+
cursor: pointer;
|
| 55 |
+
}
|
| 56 |
+
|
| 57 |
+
div[data-baseweb="select"] > div {
|
| 58 |
+
background-color: #DAA520;
|
| 59 |
+
color: white;
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
</style>""", unsafe_allow_html=True)
|
| 63 |
+
|
| 64 |
@st.cache_data(ttl = 600)
|
| 65 |
def init_DK_seed_frames(sharp_split):
|
| 66 |
|
|
|
|
| 219 |
|
| 220 |
return Sim_Winners
|
| 221 |
|
| 222 |
+
selected_tab = st.segmented_control(
|
| 223 |
+
"Select Tab",
|
| 224 |
+
options=["Contest Sims", "Data Export"],
|
| 225 |
+
selection_mode='single',
|
| 226 |
+
default='Contest Sims',
|
| 227 |
+
width='stretch',
|
| 228 |
+
label_visibility='collapsed',
|
| 229 |
+
key='tab_selector'
|
| 230 |
+
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 231 |
|
| 232 |
+
if selected_tab == "Contest Sims":
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 233 |
col1, col2 = st.columns([1, 7])
|
| 234 |
with col1:
|
| 235 |
if st.button("Load/Reset Data", key='reset2'):
|
|
|
|
| 706 |
file_name='team_freq.csv',
|
| 707 |
mime='text/csv',
|
| 708 |
key='team'
|
| 709 |
+
)
|
| 710 |
+
|
| 711 |
+
if selected_tab == "Data Export":
|
| 712 |
+
col1, col2 = st.columns([1, 7])
|
| 713 |
+
with col1:
|
| 714 |
+
if st.button("Load/Reset Data", key='reset1'):
|
| 715 |
+
st.cache_data.clear()
|
| 716 |
+
for key in st.session_state.keys():
|
| 717 |
+
del st.session_state[key]
|
| 718 |
+
DK_seed = init_DK_seed_frames(10000)
|
| 719 |
+
FD_seed = init_FD_seed_frames(10000)
|
| 720 |
+
dk_raw, fd_raw = init_baselines('Main Slate')
|
| 721 |
+
dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_ID))
|
| 722 |
+
fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_ID))
|
| 723 |
+
|
| 724 |
+
slate_var1 = st.radio("Which data are you loading?", ('Main Slate', 'Secondary Slate'))
|
| 725 |
+
site_var1 = st.radio("What site are you working with?", ('Draftkings', 'Fanduel'))
|
| 726 |
+
sharp_split_var = st.number_input("How many lineups do you want?", value=10000, max_value=500000, min_value=10000, step=10000)
|
| 727 |
+
|
| 728 |
+
if site_var1 == 'Draftkings':
|
| 729 |
+
|
| 730 |
+
team_var1 = st.radio("Do you want a frame with specific teams?", ('Full Slate', 'Specific Teams'), key='team_var1')
|
| 731 |
+
if team_var1 == 'Specific Teams':
|
| 732 |
+
dk_raw, fd_raw = init_baselines('Main Slate')
|
| 733 |
+
team_var2 = st.multiselect('Which teams do you want?', options = dk_raw['Team'].unique())
|
| 734 |
+
elif team_var1 == 'Full Slate':
|
| 735 |
+
dk_raw, fd_raw = init_baselines('Main Slate')
|
| 736 |
+
team_var2 = dk_raw.Team.values.tolist()
|
| 737 |
+
|
| 738 |
+
stack_var1 = st.radio("Do you want a frame with specific stack sizes?", ('Full Slate', 'Specific Stack Sizes'), key='stack_var1')
|
| 739 |
+
if stack_var1 == 'Specific Stack Sizes':
|
| 740 |
+
stack_var2 = st.multiselect('Which stack sizes do you want?', options = [5, 4, 3, 2, 1, 0])
|
| 741 |
+
elif stack_var1 == 'Full Slate':
|
| 742 |
+
stack_var2 = [5, 4, 3, 2, 1, 0]
|
| 743 |
+
|
| 744 |
+
elif site_var1 == 'Fanduel':
|
| 745 |
+
|
| 746 |
+
team_var1 = st.radio("Do you want a frame with specific teams?", ('Full Slate', 'Specific Teams'), key='team_var1')
|
| 747 |
+
if team_var1 == 'Specific Teams':
|
| 748 |
+
dk_raw, fd_raw = init_baselines('Main Slate')
|
| 749 |
+
team_var2 = st.multiselect('Which teams do you want?', options = fd_raw['Team'].unique())
|
| 750 |
+
elif team_var1 == 'Full Slate':
|
| 751 |
+
dk_raw, fd_raw = init_baselines('Main Slate')
|
| 752 |
+
team_var2 = fd_raw.Team.values.tolist()
|
| 753 |
+
|
| 754 |
+
stack_var1 = st.radio("Do you want a frame with specific stack sizes?", ('Full Slate', 'Specific Stack Sizes'), key='stack_var1')
|
| 755 |
+
if stack_var1 == 'Specific Stack Sizes':
|
| 756 |
+
stack_var2 = st.multiselect('Which stack sizes do you want?', options = [5, 4, 3, 2, 1, 0])
|
| 757 |
+
elif stack_var1 == 'Full Slate':
|
| 758 |
+
stack_var2 = [5, 4, 3, 2, 1, 0]
|
| 759 |
+
|
| 760 |
+
|
| 761 |
+
if st.button("Prepare data export", key='data_export'):
|
| 762 |
+
if 'working_seed' in st.session_state:
|
| 763 |
+
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 11], team_var2)]
|
| 764 |
+
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 12], stack_var2)]
|
| 765 |
+
elif 'working_seed' not in st.session_state:
|
| 766 |
+
if site_var1 == 'Draftkings':
|
| 767 |
+
if slate_var1 == 'Main Slate':
|
| 768 |
+
st.session_state.working_seed = init_DK_seed_frames(sharp_split_var)
|
| 769 |
+
dk_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_ID))
|
| 770 |
+
elif slate_var1 == 'Secondary Slate':
|
| 771 |
+
st.session_state.working_seed = init_DK_Secondary_seed_frames(sharp_split_var)
|
| 772 |
+
dk_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_ID))
|
| 773 |
+
|
| 774 |
+
raw_baselines = dk_raw
|
| 775 |
+
column_names = dk_columns
|
| 776 |
+
|
| 777 |
+
elif site_var1 == 'Fanduel':
|
| 778 |
+
if slate_var1 == 'Main Slate':
|
| 779 |
+
st.session_state.working_seed = init_FD_seed_frames(sharp_split_var)
|
| 780 |
+
fd_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_ID))
|
| 781 |
+
elif slate_var1 == 'Secondary Slate':
|
| 782 |
+
st.session_state.working_seed = init_FD_Secondary_seed_frames(sharp_split_var)
|
| 783 |
+
fd_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_ID))
|
| 784 |
+
|
| 785 |
+
raw_baselines = fd_raw
|
| 786 |
+
column_names = fd_columns
|
| 787 |
+
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 11], team_var2)]
|
| 788 |
+
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 12], stack_var2)]
|
| 789 |
+
data_export = st.session_state.working_seed.copy()
|
| 790 |
+
for col in range(9):
|
| 791 |
+
data_export[:, col] = np.array([dk_id_dict.get(x, x) for x in data_export[:, col]])
|
| 792 |
+
st.download_button(
|
| 793 |
+
label="Export optimals set",
|
| 794 |
+
data=convert_df(data_export),
|
| 795 |
+
file_name='NFL_optimals_export.csv',
|
| 796 |
+
mime='text/csv',
|
| 797 |
+
)
|
| 798 |
+
|
| 799 |
+
with col2:
|
| 800 |
+
if st.button("Load Data", key='load_data'):
|
| 801 |
+
if site_var1 == 'Draftkings':
|
| 802 |
+
if 'working_seed' in st.session_state:
|
| 803 |
+
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 11], team_var2)]
|
| 804 |
+
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 12], stack_var2)]
|
| 805 |
+
st.session_state.data_export_display = pd.DataFrame(st.session_state.working_seed[0:1000], columns=column_names)
|
| 806 |
+
elif 'working_seed' not in st.session_state:
|
| 807 |
+
if slate_var1 == 'Main Slate':
|
| 808 |
+
st.session_state.working_seed = init_DK_seed_frames(sharp_split_var)
|
| 809 |
+
dk_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_ID))
|
| 810 |
+
dk_raw, fd_raw = init_baselines('Main Slate')
|
| 811 |
+
|
| 812 |
+
elif slate_var1 == 'Secondary Slate':
|
| 813 |
+
st.session_state.working_seed = init_DK_Secondary_seed_frames(sharp_split_var)
|
| 814 |
+
dk_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_ID))
|
| 815 |
+
dk_raw, fd_raw = init_baselines('Secondary Slate')
|
| 816 |
+
|
| 817 |
+
raw_baselines = dk_raw
|
| 818 |
+
column_names = dk_columns
|
| 819 |
+
|
| 820 |
+
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 11], team_var2)]
|
| 821 |
+
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 12], stack_var2)]
|
| 822 |
+
st.session_state.data_export_display = pd.DataFrame(st.session_state.working_seed[0:1000], columns=column_names)
|
| 823 |
+
|
| 824 |
+
elif site_var1 == 'Fanduel':
|
| 825 |
+
if 'working_seed' in st.session_state:
|
| 826 |
+
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 11], team_var2)]
|
| 827 |
+
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 12], stack_var2)]
|
| 828 |
+
st.session_state.data_export_display = pd.DataFrame(st.session_state.working_seed[0:1000], columns=column_names)
|
| 829 |
+
elif 'working_seed' not in st.session_state:
|
| 830 |
+
if slate_var1 == 'Main Slate':
|
| 831 |
+
st.session_state.working_seed = init_FD_seed_frames(sharp_split_var)
|
| 832 |
+
fd_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_ID))
|
| 833 |
+
dk_raw, fd_raw = init_baselines('Main Slate')
|
| 834 |
+
elif slate_var1 == 'Secondary Slate':
|
| 835 |
+
st.session_state.working_seed = init_FD_Secondary_seed_frames(sharp_split_var)
|
| 836 |
+
fd_id_dict = dict(zip(st.session_state.working_seed.Player, st.session_state.working_seed.player_ID))
|
| 837 |
+
dk_raw, fd_raw = init_baselines('Secondary Slate')
|
| 838 |
+
|
| 839 |
+
raw_baselines = fd_raw
|
| 840 |
+
column_names = fd_columns
|
| 841 |
+
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 11], team_var2)]
|
| 842 |
+
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 12], stack_var2)]
|
| 843 |
+
st.session_state.data_export_display = pd.DataFrame(st.session_state.working_seed[0:1000], columns=column_names)
|
| 844 |
+
|
| 845 |
+
with st.container():
|
| 846 |
+
if 'data_export_display' in st.session_state:
|
| 847 |
+
st.dataframe(st.session_state.data_export_display.style.format(freq_format, precision=2), use_container_width = True)
|