Spaces:
Running
Running
James McCool
commited on
Commit
·
f02bae9
1
Parent(s):
6c387a5
Refactor Streamlit app layout and functionality to improve user experience. Introduced new columns for data loading and viewing options, added a segmented control for tab selection, and streamlined data reset logic. Enhanced site selection handling for Draftkings and Fanduel, ensuring consistent functionality across different views.
Browse files- src/streamlit_app.py +73 -61
src/streamlit_app.py
CHANGED
@@ -184,19 +184,42 @@ dk_id_dict_sd = dict(zip(sd_roo_data['Player'], sd_roo_data['player_id']))
|
|
184 |
fd_id_dict = dict(zip(roo_data[roo_data['Site'] == 'Fanduel']['Player'], roo_data[roo_data['Site'] == 'Fanduel']['player_id']))
|
185 |
fd_id_dict_sd = dk_id_dict_sd
|
186 |
hold_display = roo_data
|
187 |
-
lineup_display = []
|
188 |
-
check_list = []
|
189 |
-
rand_player = 0
|
190 |
-
boost_player = 0
|
191 |
-
salaryCut = 0
|
192 |
|
193 |
-
|
194 |
-
|
195 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
196 |
with st.expander("Info and Filters"):
|
197 |
if st.button("Reset Data", key='reset1'):
|
198 |
-
# Clear values from *all* all in-memory and on-disk data caches:
|
199 |
-
# i.e. clear values from both square and cube
|
200 |
st.cache_data.clear()
|
201 |
roo_data, sd_roo_data, timestamp = init_baselines()
|
202 |
dk_id_dict = dict(zip(roo_data[roo_data['Site'] == 'Draftkings']['Player'], roo_data[roo_data['Site'] == 'Draftkings']['player_id']))
|
@@ -210,20 +233,14 @@ with tab1:
|
|
210 |
del st.session_state[key]
|
211 |
|
212 |
st.write(timestamp)
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
if type_var == "Full Slate":
|
222 |
-
display = hold_display[hold_display['Site'] == site_var]
|
223 |
-
display = display.drop_duplicates(subset=['Player'])
|
224 |
-
elif type_var == "Showdown":
|
225 |
-
display = sd_roo_data
|
226 |
-
display = display.drop_duplicates(subset=['Player'])
|
227 |
|
228 |
export_data = display.copy()
|
229 |
export_data_pm = display[['Player', 'Salary', 'Median', 'Own']]
|
@@ -263,7 +280,7 @@ with tab1:
|
|
263 |
display = display.set_index('Player')
|
264 |
st.dataframe(display.style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').format(player_roo_format, precision=2), height=750, use_container_width = True)
|
265 |
|
266 |
-
|
267 |
with st.expander("Info and Filters"):
|
268 |
if st.button("Load/Reset Data", key='reset2'):
|
269 |
st.cache_data.clear()
|
@@ -279,35 +296,30 @@ with tab2:
|
|
279 |
for key in st.session_state.keys():
|
280 |
del st.session_state[key]
|
281 |
|
282 |
-
col1, col2, col3, col4
|
283 |
-
with col1:
|
284 |
-
site_var1 = st.radio("What site are you working with?", ('Draftkings', 'Fanduel'))
|
285 |
-
if site_var1 == 'Draftkings':
|
286 |
-
id_dict = dk_id_dict.copy()
|
287 |
-
id_dict_sd = dk_id_dict_sd.copy()
|
288 |
-
elif site_var1 == 'Fanduel':
|
289 |
-
id_dict = fd_id_dict.copy()
|
290 |
-
id_dict_sd = fd_id_dict_sd.copy()
|
291 |
-
|
292 |
-
with col2:
|
293 |
slate_var1 = st.radio("Which data are you loading?", ('Regular', 'Showdown'))
|
294 |
if slate_var1 == 'Regular':
|
295 |
-
if
|
296 |
dk_lineups = init_DK_lineups('Regular')
|
297 |
-
|
|
|
298 |
fd_lineups = init_FD_lineups('Regular')
|
|
|
299 |
elif slate_var1 == 'Showdown':
|
300 |
-
if
|
301 |
dk_lineups = init_DK_lineups('Showdown')
|
302 |
-
|
|
|
303 |
fd_lineups = init_FD_lineups('Showdown')
|
|
|
304 |
|
305 |
if slate_var1 == 'Regular':
|
306 |
raw_baselines = roo_data
|
307 |
elif slate_var1 == 'Showdown':
|
308 |
raw_baselines = sd_roo_data
|
309 |
|
310 |
-
if
|
311 |
if slate_var1 == 'Regular':
|
312 |
ROO_slice = raw_baselines[raw_baselines['Site'] == 'Draftkings']
|
313 |
player_salaries = dict(zip(ROO_slice['Player'], ROO_slice['Salary']))
|
@@ -318,7 +330,7 @@ with tab2:
|
|
318 |
max_own = np.max(dk_lineups[:,8])
|
319 |
column_names = dk_columns
|
320 |
|
321 |
-
elif
|
322 |
raw_baselines = hold_display
|
323 |
if slate_var1 == 'Regular':
|
324 |
ROO_slice = raw_baselines[raw_baselines['Site'] == 'Fanduel']
|
@@ -328,21 +340,21 @@ with tab2:
|
|
328 |
min_own = np.min(fd_lineups[:,8])
|
329 |
max_own = np.max(fd_lineups[:,8])
|
330 |
column_names = fd_columns
|
331 |
-
with
|
332 |
lineup_num_var = st.number_input("How many lineups do you want to display?", min_value=1, max_value=1000, value=150, step=1)
|
333 |
|
334 |
-
with
|
335 |
player_var1 = st.radio("Do you want a frame with specific Players?", ('Full Slate', 'Specific Players'), key='player_var1')
|
336 |
if player_var1 == 'Specific Players':
|
337 |
player_var2 = st.multiselect('Which players do you want?', options = raw_baselines['Player'].unique())
|
338 |
elif player_var1 == 'Full Slate':
|
339 |
player_var2 = raw_baselines.Player.values.tolist()
|
340 |
|
341 |
-
with
|
342 |
-
if
|
343 |
salary_min_var = st.number_input("Minimum salary used", min_value = 0, max_value = 50000, value = 49000, step = 100, key = 'salary_min_var')
|
344 |
salary_max_var = st.number_input("Maximum salary used", min_value = 0, max_value = 50000, value = 50000, step = 100, key = 'salary_max_var')
|
345 |
-
elif
|
346 |
salary_min_var = st.number_input("Minimum salary used", min_value = 0, max_value = 60000, value = 59000, step = 100, key = 'salary_min_var')
|
347 |
salary_max_var = st.number_input("Maximum salary used", min_value = 0, max_value = 60000, value = 60000, step = 100, key = 'salary_max_var')
|
348 |
|
@@ -351,12 +363,12 @@ with tab2:
|
|
351 |
if st.button("Prepare full data export", key='data_export'):
|
352 |
name_export = pd.DataFrame(st.session_state.working_seed.copy(), columns=column_names)
|
353 |
data_export = pd.DataFrame(st.session_state.working_seed.copy(), columns=column_names)
|
354 |
-
if
|
355 |
if slate_var1 == 'Regular':
|
356 |
map_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
357 |
elif slate_var1 == 'Showdown':
|
358 |
map_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
359 |
-
elif
|
360 |
if slate_var1 == 'Regular':
|
361 |
map_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
362 |
elif slate_var1 == 'Showdown':
|
@@ -401,12 +413,12 @@ with tab2:
|
|
401 |
if st.button("Prepare full data export (Filtered)", key='data_export_filtered'):
|
402 |
name_export = pd.DataFrame(st.session_state.working_seed.copy(), columns=column_names)
|
403 |
data_export = pd.DataFrame(st.session_state.working_seed.copy(), columns=column_names)
|
404 |
-
if
|
405 |
if slate_var1 == 'Regular':
|
406 |
map_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
407 |
elif slate_var1 == 'Showdown':
|
408 |
map_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
409 |
-
elif
|
410 |
if slate_var1 == 'Regular':
|
411 |
map_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
412 |
elif slate_var1 == 'Showdown':
|
@@ -453,7 +465,7 @@ with tab2:
|
|
453 |
mime='text/csv',
|
454 |
)
|
455 |
|
456 |
-
if
|
457 |
if 'working_seed' in st.session_state:
|
458 |
st.session_state.working_seed = st.session_state.working_seed
|
459 |
if player_var1 == 'Specific Players':
|
@@ -470,7 +482,7 @@ with tab2:
|
|
470 |
st.session_state.working_seed = dk_lineups.copy()
|
471 |
st.session_state.data_export_display = pd.DataFrame(st.session_state.working_seed[0:lineup_num_var], columns=column_names)
|
472 |
|
473 |
-
elif
|
474 |
if 'working_seed' in st.session_state:
|
475 |
st.session_state.working_seed = st.session_state.working_seed
|
476 |
if player_var1 == 'Specific Players':
|
@@ -499,9 +511,9 @@ with tab2:
|
|
499 |
if st.button("Reset Optimals", key='reset3'):
|
500 |
for key in st.session_state.keys():
|
501 |
del st.session_state[key]
|
502 |
-
if
|
503 |
st.session_state.working_seed = dk_lineups.copy()
|
504 |
-
elif
|
505 |
st.session_state.working_seed = fd_lineups.copy()
|
506 |
|
507 |
st.session_state.data_export_display = st.session_state.data_export_display[st.session_state.data_export_display['salary'].between(salary_min_var, salary_max_var)]
|
@@ -517,7 +529,7 @@ with tab2:
|
|
517 |
with st.container():
|
518 |
if 'working_seed' in st.session_state:
|
519 |
# Create a new dataframe with summary statistics
|
520 |
-
if
|
521 |
summary_df = pd.DataFrame({
|
522 |
'Metric': ['Min', 'Average', 'Max', 'STDdev'],
|
523 |
'Salary': [
|
@@ -539,7 +551,7 @@ with tab2:
|
|
539 |
np.std(st.session_state.working_seed[:,8])
|
540 |
]
|
541 |
})
|
542 |
-
elif
|
543 |
summary_df = pd.DataFrame({
|
544 |
'Metric': ['Min', 'Average', 'Max', 'STDdev'],
|
545 |
'Salary': [
|
@@ -577,9 +589,9 @@ with tab2:
|
|
577 |
tab1, tab2 = st.tabs(["Display Frequency", "Seed Frame Frequency"])
|
578 |
with tab1:
|
579 |
if 'data_export_display' in st.session_state:
|
580 |
-
if
|
581 |
player_columns = st.session_state.data_export_display.iloc[:, :6]
|
582 |
-
elif
|
583 |
player_columns = st.session_state.data_export_display.iloc[:, :6]
|
584 |
|
585 |
# Flatten the DataFrame and count unique values
|
@@ -613,9 +625,9 @@ with tab2:
|
|
613 |
)
|
614 |
with tab2:
|
615 |
if 'working_seed' in st.session_state:
|
616 |
-
if
|
617 |
player_columns = st.session_state.working_seed[:, :6]
|
618 |
-
elif
|
619 |
player_columns = st.session_state.working_seed[:, :6]
|
620 |
|
621 |
# Flatten the DataFrame and count unique values
|
|
|
184 |
fd_id_dict = dict(zip(roo_data[roo_data['Site'] == 'Fanduel']['Player'], roo_data[roo_data['Site'] == 'Fanduel']['player_id']))
|
185 |
fd_id_dict_sd = dk_id_dict_sd
|
186 |
hold_display = roo_data
|
|
|
|
|
|
|
|
|
|
|
187 |
|
188 |
+
app_load_reset_column, app_view_site_column = st.columns([1, 9])
|
189 |
+
with app_load_reset_column:
|
190 |
+
if st.button("Load/Reset Data", key='reset_data_button'):
|
191 |
+
st.cache_data.clear()
|
192 |
+
roo_data, sd_roo_data, timestamp = init_baselines()
|
193 |
+
dk_id_dict = dict(zip(roo_data[roo_data['Site'] == 'Draftkings']['Player'], roo_data[roo_data['Site'] == 'Draftkings']['player_id']))
|
194 |
+
dk_id_dict_sd = dict(zip(sd_roo_data['Player'], sd_roo_data['player_id']))
|
195 |
+
fd_id_dict = dict(zip(roo_data[roo_data['Site'] == 'Fanduel']['Player'], roo_data[roo_data['Site'] == 'Fanduel']['player_id']))
|
196 |
+
fd_id_dict_sd = dk_id_dict_sd
|
197 |
+
dk_lineups = init_DK_lineups('Regular')
|
198 |
+
fd_lineups = init_FD_lineups('Regular')
|
199 |
+
hold_display = roo_data
|
200 |
+
for key in st.session_state.keys():
|
201 |
+
del st.session_state[key]
|
202 |
+
with app_view_site_column:
|
203 |
+
with st.container():
|
204 |
+
app_view_column, app_site_column = st.columns([3, 3])
|
205 |
+
with app_view_column:
|
206 |
+
view_var = st.selectbox("Select view", ["Simple", "Advanced"], key='view_selectbox')
|
207 |
+
with app_site_column:
|
208 |
+
site_var = st.selectbox("What site do you want to view?", ('Draftkings', 'Fanduel'), key='site_selectbox')
|
209 |
+
|
210 |
+
selected_tab = st.segmented_control(
|
211 |
+
"Select Tab",
|
212 |
+
options=["Player ROO", "Optimals"],
|
213 |
+
selection_mode='single',
|
214 |
+
default='Player ROO',
|
215 |
+
width='stretch',
|
216 |
+
label_visibility='collapsed',
|
217 |
+
key='tab_selector'
|
218 |
+
)
|
219 |
+
|
220 |
+
if selected_tab == "Player ROO":
|
221 |
with st.expander("Info and Filters"):
|
222 |
if st.button("Reset Data", key='reset1'):
|
|
|
|
|
223 |
st.cache_data.clear()
|
224 |
roo_data, sd_roo_data, timestamp = init_baselines()
|
225 |
dk_id_dict = dict(zip(roo_data[roo_data['Site'] == 'Draftkings']['Player'], roo_data[roo_data['Site'] == 'Draftkings']['player_id']))
|
|
|
233 |
del st.session_state[key]
|
234 |
|
235 |
st.write(timestamp)
|
236 |
+
|
237 |
+
type_var = st.radio("Select a Type", ["Full Slate", "Showdown"])
|
238 |
+
if type_var == "Full Slate":
|
239 |
+
display = hold_display[hold_display['Site'] == site_var]
|
240 |
+
display = display.drop_duplicates(subset=['Player'])
|
241 |
+
elif type_var == "Showdown":
|
242 |
+
display = sd_roo_data
|
243 |
+
display = display.drop_duplicates(subset=['Player'])
|
|
|
|
|
|
|
|
|
|
|
|
|
244 |
|
245 |
export_data = display.copy()
|
246 |
export_data_pm = display[['Player', 'Salary', 'Median', 'Own']]
|
|
|
280 |
display = display.set_index('Player')
|
281 |
st.dataframe(display.style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').format(player_roo_format, precision=2), height=750, use_container_width = True)
|
282 |
|
283 |
+
if selected_tab == "Optimals":
|
284 |
with st.expander("Info and Filters"):
|
285 |
if st.button("Load/Reset Data", key='reset2'):
|
286 |
st.cache_data.clear()
|
|
|
296 |
for key in st.session_state.keys():
|
297 |
del st.session_state[key]
|
298 |
|
299 |
+
col1, col2, col3, col4 = st.columns(5)
|
300 |
+
with col1:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
301 |
slate_var1 = st.radio("Which data are you loading?", ('Regular', 'Showdown'))
|
302 |
if slate_var1 == 'Regular':
|
303 |
+
if site_var == 'Draftkings':
|
304 |
dk_lineups = init_DK_lineups('Regular')
|
305 |
+
id_dict = dk_id_dict.copy()
|
306 |
+
elif site_var == 'Fanduel':
|
307 |
fd_lineups = init_FD_lineups('Regular')
|
308 |
+
id_dict = fd_id_dict.copy()
|
309 |
elif slate_var1 == 'Showdown':
|
310 |
+
if site_var == 'Draftkings':
|
311 |
dk_lineups = init_DK_lineups('Showdown')
|
312 |
+
id_dict_sd = dk_id_dict_sd.copy()
|
313 |
+
elif site_var == 'Fanduel':
|
314 |
fd_lineups = init_FD_lineups('Showdown')
|
315 |
+
id_dict_sd = fd_id_dict_sd.copy()
|
316 |
|
317 |
if slate_var1 == 'Regular':
|
318 |
raw_baselines = roo_data
|
319 |
elif slate_var1 == 'Showdown':
|
320 |
raw_baselines = sd_roo_data
|
321 |
|
322 |
+
if site_var == 'Draftkings':
|
323 |
if slate_var1 == 'Regular':
|
324 |
ROO_slice = raw_baselines[raw_baselines['Site'] == 'Draftkings']
|
325 |
player_salaries = dict(zip(ROO_slice['Player'], ROO_slice['Salary']))
|
|
|
330 |
max_own = np.max(dk_lineups[:,8])
|
331 |
column_names = dk_columns
|
332 |
|
333 |
+
elif site_var == 'Fanduel':
|
334 |
raw_baselines = hold_display
|
335 |
if slate_var1 == 'Regular':
|
336 |
ROO_slice = raw_baselines[raw_baselines['Site'] == 'Fanduel']
|
|
|
340 |
min_own = np.min(fd_lineups[:,8])
|
341 |
max_own = np.max(fd_lineups[:,8])
|
342 |
column_names = fd_columns
|
343 |
+
with col2:
|
344 |
lineup_num_var = st.number_input("How many lineups do you want to display?", min_value=1, max_value=1000, value=150, step=1)
|
345 |
|
346 |
+
with col3:
|
347 |
player_var1 = st.radio("Do you want a frame with specific Players?", ('Full Slate', 'Specific Players'), key='player_var1')
|
348 |
if player_var1 == 'Specific Players':
|
349 |
player_var2 = st.multiselect('Which players do you want?', options = raw_baselines['Player'].unique())
|
350 |
elif player_var1 == 'Full Slate':
|
351 |
player_var2 = raw_baselines.Player.values.tolist()
|
352 |
|
353 |
+
with col4:
|
354 |
+
if site_var == 'Draftkings':
|
355 |
salary_min_var = st.number_input("Minimum salary used", min_value = 0, max_value = 50000, value = 49000, step = 100, key = 'salary_min_var')
|
356 |
salary_max_var = st.number_input("Maximum salary used", min_value = 0, max_value = 50000, value = 50000, step = 100, key = 'salary_max_var')
|
357 |
+
elif site_var == 'Fanduel':
|
358 |
salary_min_var = st.number_input("Minimum salary used", min_value = 0, max_value = 60000, value = 59000, step = 100, key = 'salary_min_var')
|
359 |
salary_max_var = st.number_input("Maximum salary used", min_value = 0, max_value = 60000, value = 60000, step = 100, key = 'salary_max_var')
|
360 |
|
|
|
363 |
if st.button("Prepare full data export", key='data_export'):
|
364 |
name_export = pd.DataFrame(st.session_state.working_seed.copy(), columns=column_names)
|
365 |
data_export = pd.DataFrame(st.session_state.working_seed.copy(), columns=column_names)
|
366 |
+
if site_var == 'Draftkings':
|
367 |
if slate_var1 == 'Regular':
|
368 |
map_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
369 |
elif slate_var1 == 'Showdown':
|
370 |
map_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
371 |
+
elif site_var == 'Fanduel':
|
372 |
if slate_var1 == 'Regular':
|
373 |
map_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
374 |
elif slate_var1 == 'Showdown':
|
|
|
413 |
if st.button("Prepare full data export (Filtered)", key='data_export_filtered'):
|
414 |
name_export = pd.DataFrame(st.session_state.working_seed.copy(), columns=column_names)
|
415 |
data_export = pd.DataFrame(st.session_state.working_seed.copy(), columns=column_names)
|
416 |
+
if site_var == 'Draftkings':
|
417 |
if slate_var1 == 'Regular':
|
418 |
map_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
419 |
elif slate_var1 == 'Showdown':
|
420 |
map_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
421 |
+
elif site_var == 'Fanduel':
|
422 |
if slate_var1 == 'Regular':
|
423 |
map_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
424 |
elif slate_var1 == 'Showdown':
|
|
|
465 |
mime='text/csv',
|
466 |
)
|
467 |
|
468 |
+
if site_var == 'Draftkings':
|
469 |
if 'working_seed' in st.session_state:
|
470 |
st.session_state.working_seed = st.session_state.working_seed
|
471 |
if player_var1 == 'Specific Players':
|
|
|
482 |
st.session_state.working_seed = dk_lineups.copy()
|
483 |
st.session_state.data_export_display = pd.DataFrame(st.session_state.working_seed[0:lineup_num_var], columns=column_names)
|
484 |
|
485 |
+
elif site_var == 'Fanduel':
|
486 |
if 'working_seed' in st.session_state:
|
487 |
st.session_state.working_seed = st.session_state.working_seed
|
488 |
if player_var1 == 'Specific Players':
|
|
|
511 |
if st.button("Reset Optimals", key='reset3'):
|
512 |
for key in st.session_state.keys():
|
513 |
del st.session_state[key]
|
514 |
+
if site_var == 'Draftkings':
|
515 |
st.session_state.working_seed = dk_lineups.copy()
|
516 |
+
elif site_var == 'Fanduel':
|
517 |
st.session_state.working_seed = fd_lineups.copy()
|
518 |
|
519 |
st.session_state.data_export_display = st.session_state.data_export_display[st.session_state.data_export_display['salary'].between(salary_min_var, salary_max_var)]
|
|
|
529 |
with st.container():
|
530 |
if 'working_seed' in st.session_state:
|
531 |
# Create a new dataframe with summary statistics
|
532 |
+
if site_var == 'Draftkings':
|
533 |
summary_df = pd.DataFrame({
|
534 |
'Metric': ['Min', 'Average', 'Max', 'STDdev'],
|
535 |
'Salary': [
|
|
|
551 |
np.std(st.session_state.working_seed[:,8])
|
552 |
]
|
553 |
})
|
554 |
+
elif site_var == 'Fanduel':
|
555 |
summary_df = pd.DataFrame({
|
556 |
'Metric': ['Min', 'Average', 'Max', 'STDdev'],
|
557 |
'Salary': [
|
|
|
589 |
tab1, tab2 = st.tabs(["Display Frequency", "Seed Frame Frequency"])
|
590 |
with tab1:
|
591 |
if 'data_export_display' in st.session_state:
|
592 |
+
if site_var == 'Draftkings':
|
593 |
player_columns = st.session_state.data_export_display.iloc[:, :6]
|
594 |
+
elif site_var == 'Fanduel':
|
595 |
player_columns = st.session_state.data_export_display.iloc[:, :6]
|
596 |
|
597 |
# Flatten the DataFrame and count unique values
|
|
|
625 |
)
|
626 |
with tab2:
|
627 |
if 'working_seed' in st.session_state:
|
628 |
+
if site_var == 'Draftkings':
|
629 |
player_columns = st.session_state.working_seed[:, :6]
|
630 |
+
elif site_var == 'Fanduel':
|
631 |
player_columns = st.session_state.working_seed[:, :6]
|
632 |
|
633 |
# Flatten the DataFrame and count unique values
|