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
Files changed (1) hide show
  1. 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?", ("Showdown #1", "Showdown #2", "Showdown #3"), key='slate_var2_radio')
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')