Spaces:
Running
Running
James McCool
commited on
Commit
·
64db329
1
Parent(s):
2e3b8fd
Refactor position group selection in UI and update data filtering logic. Added functionality to filter by specific positions and improved team selection interface. Ensured unique player entries in the display.
Browse files
app.py
CHANGED
@@ -26,6 +26,7 @@ player_roo_format = {'Top_finish': '{:.2%}','Top_5_finish': '{:.2%}', 'Top_10_fi
|
|
26 |
dk_columns = ['SP1', 'SP2', 'C', '1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
|
27 |
fd_columns = ['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
|
28 |
|
|
|
29 |
@st.cache_resource(ttl = 60)
|
30 |
def init_baselines():
|
31 |
collection = db["Player_Range_Of_Outcomes"]
|
@@ -156,7 +157,7 @@ def init_FD_lineups(type_var,slate_var):
|
|
156 |
|
157 |
raw_display = pd.DataFrame(list(cursor))
|
158 |
raw_display = raw_display[['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']]
|
159 |
-
dict_columns = ['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3']
|
160 |
# Map names
|
161 |
raw_display[dict_columns] = raw_display[dict_columns].apply(lambda x: x.map(names_dict))
|
162 |
elif slate_var == 'Secondary':
|
@@ -170,7 +171,7 @@ def init_FD_lineups(type_var,slate_var):
|
|
170 |
|
171 |
raw_display = pd.DataFrame(list(cursor))
|
172 |
raw_display = raw_display[['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']]
|
173 |
-
dict_columns = ['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3']
|
174 |
# Map names
|
175 |
raw_display[dict_columns] = raw_display[dict_columns].apply(lambda x: x.map(names_dict))
|
176 |
elif slate_var == 'Auxiliary':
|
@@ -184,7 +185,7 @@ def init_FD_lineups(type_var,slate_var):
|
|
184 |
|
185 |
raw_display = pd.DataFrame(list(cursor))
|
186 |
raw_display = raw_display[['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']]
|
187 |
-
dict_columns = ['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3']
|
188 |
# Map names
|
189 |
raw_display[dict_columns] = raw_display[dict_columns].apply(lambda x: x.map(names_dict))
|
190 |
|
@@ -272,33 +273,38 @@ with tab2:
|
|
272 |
with st.container():
|
273 |
slate_type_var2 = st.radio("Which slate type are you loading?", ('Regular', 'Showdown'), key='slate_type_var2')
|
274 |
slate_var2 = st.radio("Which slate data are you loading?", ('Main', 'Secondary', 'Auxiliary'), key='slate_var2')
|
275 |
-
|
276 |
team_var2 = st.selectbox("Which team would you like to view?", ['All', 'Specific'], key='team_var2')
|
277 |
if team_var2 == 'Specific':
|
278 |
-
team_select2 = st.multiselect("
|
279 |
else:
|
280 |
team_select2 = None
|
|
|
|
|
|
|
|
|
|
|
281 |
if slate_type_var2 == 'Regular':
|
282 |
if site_var == 'Draftkings':
|
283 |
|
284 |
player_roo_raw = dk_roo.copy()
|
285 |
|
286 |
-
if
|
287 |
pass
|
288 |
-
elif
|
289 |
player_roo_raw = player_roo_raw[player_roo_raw['pos_group'] == 'Pitchers']
|
290 |
-
elif
|
291 |
player_roo_raw = player_roo_raw[player_roo_raw['pos_group'] == 'Hitters']
|
292 |
|
293 |
elif site_var == 'Fanduel':
|
294 |
|
295 |
player_roo_raw = fd_roo.copy()
|
296 |
|
297 |
-
if
|
298 |
pass
|
299 |
-
elif
|
300 |
player_roo_raw = player_roo_raw[player_roo_raw['pos_group'] == 'Pitchers']
|
301 |
-
elif
|
302 |
player_roo_raw = player_roo_raw[player_roo_raw['pos_group'] == 'Hitters']
|
303 |
|
304 |
if slate_var2 == 'Main':
|
@@ -317,6 +323,9 @@ with tab2:
|
|
317 |
|
318 |
if team_select2:
|
319 |
player_roo_raw = player_roo_raw[player_roo_raw['Team'].isin(team_select2)]
|
|
|
|
|
|
|
320 |
|
321 |
player_roo_disp = player_roo_raw
|
322 |
|
@@ -324,6 +333,8 @@ with tab2:
|
|
324 |
player_roo_disp = player_roo_disp.drop(columns=['Site', 'Slate', 'pos_group', 'timestamp', 'player_ID'])
|
325 |
elif slate_type_var2 == 'Showdown':
|
326 |
player_roo_disp = player_roo_disp.drop(columns=['site', 'slate', 'version', 'timestamp'])
|
|
|
|
|
327 |
|
328 |
if view_var == "Simple":
|
329 |
try:
|
|
|
26 |
dk_columns = ['SP1', 'SP2', 'C', '1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
|
27 |
fd_columns = ['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']
|
28 |
|
29 |
+
|
30 |
@st.cache_resource(ttl = 60)
|
31 |
def init_baselines():
|
32 |
collection = db["Player_Range_Of_Outcomes"]
|
|
|
157 |
|
158 |
raw_display = pd.DataFrame(list(cursor))
|
159 |
raw_display = raw_display[['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']]
|
160 |
+
dict_columns = ['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL']
|
161 |
# Map names
|
162 |
raw_display[dict_columns] = raw_display[dict_columns].apply(lambda x: x.map(names_dict))
|
163 |
elif slate_var == 'Secondary':
|
|
|
171 |
|
172 |
raw_display = pd.DataFrame(list(cursor))
|
173 |
raw_display = raw_display[['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']]
|
174 |
+
dict_columns = ['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL']
|
175 |
# Map names
|
176 |
raw_display[dict_columns] = raw_display[dict_columns].apply(lambda x: x.map(names_dict))
|
177 |
elif slate_var == 'Auxiliary':
|
|
|
185 |
|
186 |
raw_display = pd.DataFrame(list(cursor))
|
187 |
raw_display = raw_display[['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL', 'salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own']]
|
188 |
+
dict_columns = ['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL']
|
189 |
# Map names
|
190 |
raw_display[dict_columns] = raw_display[dict_columns].apply(lambda x: x.map(names_dict))
|
191 |
|
|
|
273 |
with st.container():
|
274 |
slate_type_var2 = st.radio("Which slate type are you loading?", ('Regular', 'Showdown'), key='slate_type_var2')
|
275 |
slate_var2 = st.radio("Which slate data are you loading?", ('Main', 'Secondary', 'Auxiliary'), key='slate_var2')
|
276 |
+
group_var2 = st.radio("Which position group would you like to view?", ('All', 'Pitchers', 'Hitters'), key='group_var2')
|
277 |
team_var2 = st.selectbox("Which team would you like to view?", ['All', 'Specific'], key='team_var2')
|
278 |
if team_var2 == 'Specific':
|
279 |
+
team_select2 = st.multiselect("Select your team(s)", roo_data['Team'].unique(), key='team_select2')
|
280 |
else:
|
281 |
team_select2 = None
|
282 |
+
pos_var2 = st.selectbox("Which position(s) would you like to view?", ['All', 'Specific'], key='pos_var2')
|
283 |
+
if pos_var2 == 'Specific':
|
284 |
+
pos_select2 = st.multiselect("Select your position(s)", roo_data['Position'].unique(), key='pos_select2')
|
285 |
+
else:
|
286 |
+
pos_select2 = None
|
287 |
if slate_type_var2 == 'Regular':
|
288 |
if site_var == 'Draftkings':
|
289 |
|
290 |
player_roo_raw = dk_roo.copy()
|
291 |
|
292 |
+
if group_var2 == 'All':
|
293 |
pass
|
294 |
+
elif group_var2 == 'Pitchers':
|
295 |
player_roo_raw = player_roo_raw[player_roo_raw['pos_group'] == 'Pitchers']
|
296 |
+
elif group_var2 == 'Hitters':
|
297 |
player_roo_raw = player_roo_raw[player_roo_raw['pos_group'] == 'Hitters']
|
298 |
|
299 |
elif site_var == 'Fanduel':
|
300 |
|
301 |
player_roo_raw = fd_roo.copy()
|
302 |
|
303 |
+
if group_var2 == 'All':
|
304 |
pass
|
305 |
+
elif group_var2 == 'Pitchers':
|
306 |
player_roo_raw = player_roo_raw[player_roo_raw['pos_group'] == 'Pitchers']
|
307 |
+
elif group_var2 == 'Hitters':
|
308 |
player_roo_raw = player_roo_raw[player_roo_raw['pos_group'] == 'Hitters']
|
309 |
|
310 |
if slate_var2 == 'Main':
|
|
|
323 |
|
324 |
if team_select2:
|
325 |
player_roo_raw = player_roo_raw[player_roo_raw['Team'].isin(team_select2)]
|
326 |
+
if pos_select2:
|
327 |
+
position_mask = player_roo_raw['Position'].apply(lambda x: any(pos in x for pos in pos_select2))
|
328 |
+
player_roo_raw = player_roo_raw[position_mask]
|
329 |
|
330 |
player_roo_disp = player_roo_raw
|
331 |
|
|
|
333 |
player_roo_disp = player_roo_disp.drop(columns=['Site', 'Slate', 'pos_group', 'timestamp', 'player_ID'])
|
334 |
elif slate_type_var2 == 'Showdown':
|
335 |
player_roo_disp = player_roo_disp.drop(columns=['site', 'slate', 'version', 'timestamp'])
|
336 |
+
|
337 |
+
player_roo_disp = player_roo_disp.drop_duplicates(subset=['Player'])
|
338 |
|
339 |
if view_var == "Simple":
|
340 |
try:
|