Spaces:
Sleeping
Sleeping
James McCool commited on
Commit ·
9f729f4
1
Parent(s): 104eab2
Add functions to define showdown slates for DraftKings and FanDuel, enhancing slate selection in the app.
Browse files- src/streamlit_app.py +40 -3
src/streamlit_app.py
CHANGED
|
@@ -69,6 +69,40 @@ st.markdown("""
|
|
| 69 |
|
| 70 |
</style>""", unsafe_allow_html=True)
|
| 71 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 72 |
@st.cache_resource(ttl=60)
|
| 73 |
def init_handbuilder_data(site_var):
|
| 74 |
"""Load only the data needed for handbuilder"""
|
|
@@ -435,6 +469,9 @@ with app_view_site_column:
|
|
| 435 |
with app_site_column:
|
| 436 |
site_var = st.selectbox("What site do you want to view?", ('Draftkings', 'Fanduel'), key='site_selectbox')
|
| 437 |
|
|
|
|
|
|
|
|
|
|
| 438 |
selected_tab = st.segmented_control(
|
| 439 |
"Select Tab",
|
| 440 |
options=["Player ROO", "Stacks ROO", "Handbuilder", "Optimals"],
|
|
@@ -921,19 +958,19 @@ if selected_tab == 'Player ROO':
|
|
| 921 |
if slate_type_var2 == 'Regular':
|
| 922 |
slate_var2 = st.radio("Which data are you loading?", ('Main Slate', 'Secondary Slate', 'Late Slate', 'Thurs-Mon Slate'), key='slate_var2_radio')
|
| 923 |
elif slate_type_var2 == 'Showdown':
|
| 924 |
-
slate_var2 = st.radio("Which slate are you loading?", (
|
| 925 |
if site_var == 'Draftkings':
|
| 926 |
if slate_type_var2 == 'Regular':
|
| 927 |
raw_baselines = dk_roo_raw[dk_roo_raw['slate'] == str(slate_var2)]
|
| 928 |
elif slate_type_var2 == 'Showdown':
|
| 929 |
-
raw_baselines = dk_sd_roo_raw[dk_sd_roo_raw['slate'] == str(slate_var2)]
|
| 930 |
|
| 931 |
raw_baselines = raw_baselines.iloc[:,:-2]
|
| 932 |
elif site_var == 'Fanduel':
|
| 933 |
if slate_type_var2 == 'Regular':
|
| 934 |
raw_baselines = fd_roo_raw[fd_roo_raw['slate'] == str(slate_var2)]
|
| 935 |
elif slate_type_var2 == 'Showdown':
|
| 936 |
-
raw_baselines = fd_sd_roo_raw[fd_sd_roo_raw['slate'] == str(slate_var2)]
|
| 937 |
raw_baselines = raw_baselines.iloc[:,:-2]
|
| 938 |
|
| 939 |
split_var2 = st.radio("Would you like to view the whole slate or just specific games?", ('Full Slate Run', 'Specific Games'), key='split_var2_radio')
|
|
|
|
| 69 |
|
| 70 |
</style>""", unsafe_allow_html=True)
|
| 71 |
|
| 72 |
+
@st.cache_resource(ttl=60)
|
| 73 |
+
def define_dk_showdown_slates():
|
| 74 |
+
collection = db["DK_SD_NFL_ROO"]
|
| 75 |
+
cursor = collection.find()
|
| 76 |
+
raw_display = pd.DataFrame(list(cursor))
|
| 77 |
+
unique_slates = raw_display['slate'].unique()
|
| 78 |
+
|
| 79 |
+
slate_names = []
|
| 80 |
+
|
| 81 |
+
for slate in unique_slates:
|
| 82 |
+
slate_data = raw_display[raw_display['slate'] == slate]
|
| 83 |
+
slate_name = slate_data['Team'] + ' vs. ' + slate_data['Opp']
|
| 84 |
+
slate_names.append(slate_name)
|
| 85 |
+
|
| 86 |
+
slate_name_lookup = dict(zip(slate_names, unique_slates))
|
| 87 |
+
return slate_names, slate_name_lookup
|
| 88 |
+
|
| 89 |
+
@st.cache_resource(ttl=60)
|
| 90 |
+
def define_fd_showdown_slates():
|
| 91 |
+
collection = db["FD_SD_NFL_ROO"]
|
| 92 |
+
cursor = collection.find()
|
| 93 |
+
raw_display = pd.DataFrame(list(cursor))
|
| 94 |
+
unique_slates = raw_display['slate'].unique()
|
| 95 |
+
|
| 96 |
+
slate_names = []
|
| 97 |
+
|
| 98 |
+
for slate in unique_slates:
|
| 99 |
+
slate_data = raw_display[raw_display['slate'] == slate]
|
| 100 |
+
slate_name = slate_data['Team'] + ' vs. ' + slate_data['Opp']
|
| 101 |
+
slate_names.append(slate_name)
|
| 102 |
+
|
| 103 |
+
slate_name_lookup = dict(zip(slate_names, unique_slates))
|
| 104 |
+
return slate_names, slate_name_lookup
|
| 105 |
+
|
| 106 |
@st.cache_resource(ttl=60)
|
| 107 |
def init_handbuilder_data(site_var):
|
| 108 |
"""Load only the data needed for handbuilder"""
|
|
|
|
| 469 |
with app_site_column:
|
| 470 |
site_var = st.selectbox("What site do you want to view?", ('Draftkings', 'Fanduel'), key='site_selectbox')
|
| 471 |
|
| 472 |
+
slate_names_dk, slate_name_lookup_dk = define_dk_showdown_slates()
|
| 473 |
+
slate_names_fd, slate_name_lookup_fd = define_fd_showdown_slates()
|
| 474 |
+
|
| 475 |
selected_tab = st.segmented_control(
|
| 476 |
"Select Tab",
|
| 477 |
options=["Player ROO", "Stacks ROO", "Handbuilder", "Optimals"],
|
|
|
|
| 958 |
if slate_type_var2 == 'Regular':
|
| 959 |
slate_var2 = st.radio("Which data are you loading?", ('Main Slate', 'Secondary Slate', 'Late Slate', 'Thurs-Mon Slate'), key='slate_var2_radio')
|
| 960 |
elif slate_type_var2 == 'Showdown':
|
| 961 |
+
slate_var2 = st.radio("Which slate are you loading?", (slate_names_dk if site_var == 'Draftkings' else slate_names_fd), key='slate_var2_radio')
|
| 962 |
if site_var == 'Draftkings':
|
| 963 |
if slate_type_var2 == 'Regular':
|
| 964 |
raw_baselines = dk_roo_raw[dk_roo_raw['slate'] == str(slate_var2)]
|
| 965 |
elif slate_type_var2 == 'Showdown':
|
| 966 |
+
raw_baselines = dk_sd_roo_raw[dk_sd_roo_raw['slate'] == str(slate_name_lookup_dk[slate_var2])]
|
| 967 |
|
| 968 |
raw_baselines = raw_baselines.iloc[:,:-2]
|
| 969 |
elif site_var == 'Fanduel':
|
| 970 |
if slate_type_var2 == 'Regular':
|
| 971 |
raw_baselines = fd_roo_raw[fd_roo_raw['slate'] == str(slate_var2)]
|
| 972 |
elif slate_type_var2 == 'Showdown':
|
| 973 |
+
raw_baselines = fd_sd_roo_raw[fd_sd_roo_raw['slate'] == str(slate_name_lookup_fd[slate_var2])]
|
| 974 |
raw_baselines = raw_baselines.iloc[:,:-2]
|
| 975 |
|
| 976 |
split_var2 = st.radio("Would you like to view the whole slate or just specific games?", ('Full Slate Run', 'Specific Games'), key='split_var2_radio')
|