Spaces:
Build error
Build error
James McCool
commited on
Commit
·
6e9c2dc
1
Parent(s):
93913de
Enhance team filtering functionality in Streamlit app for pitcher and hitter tabs
Browse files- Added filtering options for team selection in both pitcher and hitter tabs, allowing users to view data for specific teams.
- Updated the display logic to ensure that selected teams are reflected in the dataframes for 'True AVG Splits', 'HWSr Splits', and various baseline tables.
- Improved user experience by integrating team selection into the current slate overview and active baselines displays.
- src/streamlit_app.py +43 -6
src/streamlit_app.py
CHANGED
|
@@ -117,20 +117,33 @@ with pitcher_tab:
|
|
| 117 |
|
| 118 |
if table_var_sp == 'True AVG Splits':
|
| 119 |
disp_raw = true_avg_split
|
|
|
|
|
|
|
|
|
|
|
|
|
| 120 |
disp_raw = disp_raw[['Player', 'Handedness', 'Team', 'Opp', 'Opp LHH', 'Opp RHH', 'True AVG (LHH)', 'True AVG (RHH)', 'True AVG (Overall)', 'Weighted True AVG']]
|
| 121 |
st.session_state['sp_disp_frame'] = disp_raw
|
| 122 |
elif table_var_sp == 'HWSr Splits':
|
| 123 |
disp_raw = true_avg_split
|
|
|
|
|
|
|
|
|
|
|
|
|
| 124 |
disp_raw = disp_raw[['Player', 'Handedness', 'Team', 'Opp', 'Opp LHH', 'Opp RHH', 'HWSr (LHH)', 'HWSr (RHH)', 'HWSr (Overall)', 'Weighted HWSr']]
|
| 125 |
st.session_state['sp_disp_frame'] = disp_raw
|
| 126 |
elif table_var_sp == 'Current Slate Overview':
|
| 127 |
st.session_state['sp_disp_frame'] = starting_pitchers
|
| 128 |
elif table_var_sp == 'Active Baselines':
|
| 129 |
disp_raw = pitcher_info
|
|
|
|
| 130 |
if splits_var_sp != 'Overall':
|
| 131 |
disp_raw = disp_raw[disp_raw['Set'] == splits_var_sp]
|
| 132 |
else:
|
| 133 |
disp_raw = disp_raw[disp_raw['Set'] == 'RHH']
|
|
|
|
|
|
|
|
|
|
|
|
|
| 134 |
disp_raw = disp_raw[['Names', 'DK_Salary', 'FD_Salary', 'Team', 'Opp', 'Opp_TT', 'Hand', 'K%', 'BB%', 'True AVG', 'xSLG', 'xBA', 'Hits', 'xHRs', 'xHR/PA']]
|
| 135 |
positive_set = ['K%']
|
| 136 |
st.session_state['sp_disp_frame'] = disp_raw
|
|
@@ -163,7 +176,7 @@ with hitter_tab:
|
|
| 163 |
with col1:
|
| 164 |
site_var_hitter = st.selectbox('Site', ['DraftKings', 'FanDuel'], key = 'site_var_hitter')
|
| 165 |
with col2:
|
| 166 |
-
table_var_hitter = st.selectbox('Table', ['Active Baselines', 'League Aggregate Baselines', 'League Short Term Baselines', 'League Long Term Baselines'], key = 'table_var_hitter')
|
| 167 |
with col3:
|
| 168 |
splits_var_hitter = st.selectbox('Splits', ['Overall', 'RHP', 'LHP'], key = 'splits_var_hitter')
|
| 169 |
with col4:
|
|
@@ -176,15 +189,39 @@ with hitter_tab:
|
|
| 176 |
st.write('All teams selected')
|
| 177 |
|
| 178 |
if table_var_hitter == 'Current Slate Overview':
|
| 179 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 180 |
elif table_var_hitter == 'Active Baselines':
|
| 181 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 182 |
elif table_var_hitter == 'League Aggregate Baselines':
|
| 183 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 184 |
elif table_var_hitter == 'League Short Term Baselines':
|
| 185 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 186 |
elif table_var_hitter == 'League Long Term Baselines':
|
| 187 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 188 |
|
| 189 |
hitter_disp_container = st.container(border = True)
|
| 190 |
hitter_disp_container = hitter_disp_container.empty()
|
|
|
|
| 117 |
|
| 118 |
if table_var_sp == 'True AVG Splits':
|
| 119 |
disp_raw = true_avg_split
|
| 120 |
+
|
| 121 |
+
if team_var_sp is not None:
|
| 122 |
+
disp_raw = disp_raw[disp_raw['Team'].isin(team_var_sp)]
|
| 123 |
+
|
| 124 |
disp_raw = disp_raw[['Player', 'Handedness', 'Team', 'Opp', 'Opp LHH', 'Opp RHH', 'True AVG (LHH)', 'True AVG (RHH)', 'True AVG (Overall)', 'Weighted True AVG']]
|
| 125 |
st.session_state['sp_disp_frame'] = disp_raw
|
| 126 |
elif table_var_sp == 'HWSr Splits':
|
| 127 |
disp_raw = true_avg_split
|
| 128 |
+
|
| 129 |
+
if team_var_sp is not None:
|
| 130 |
+
disp_raw = disp_raw[disp_raw['Team'].isin(team_var_sp)]
|
| 131 |
+
|
| 132 |
disp_raw = disp_raw[['Player', 'Handedness', 'Team', 'Opp', 'Opp LHH', 'Opp RHH', 'HWSr (LHH)', 'HWSr (RHH)', 'HWSr (Overall)', 'Weighted HWSr']]
|
| 133 |
st.session_state['sp_disp_frame'] = disp_raw
|
| 134 |
elif table_var_sp == 'Current Slate Overview':
|
| 135 |
st.session_state['sp_disp_frame'] = starting_pitchers
|
| 136 |
elif table_var_sp == 'Active Baselines':
|
| 137 |
disp_raw = pitcher_info
|
| 138 |
+
|
| 139 |
if splits_var_sp != 'Overall':
|
| 140 |
disp_raw = disp_raw[disp_raw['Set'] == splits_var_sp]
|
| 141 |
else:
|
| 142 |
disp_raw = disp_raw[disp_raw['Set'] == 'RHH']
|
| 143 |
+
|
| 144 |
+
if team_var_sp is not None:
|
| 145 |
+
disp_raw = disp_raw[disp_raw['Team'].isin(team_var_sp)]
|
| 146 |
+
|
| 147 |
disp_raw = disp_raw[['Names', 'DK_Salary', 'FD_Salary', 'Team', 'Opp', 'Opp_TT', 'Hand', 'K%', 'BB%', 'True AVG', 'xSLG', 'xBA', 'Hits', 'xHRs', 'xHR/PA']]
|
| 148 |
positive_set = ['K%']
|
| 149 |
st.session_state['sp_disp_frame'] = disp_raw
|
|
|
|
| 176 |
with col1:
|
| 177 |
site_var_hitter = st.selectbox('Site', ['DraftKings', 'FanDuel'], key = 'site_var_hitter')
|
| 178 |
with col2:
|
| 179 |
+
table_var_hitter = st.selectbox('Table', ['Current Slate Overview', 'Active Baselines', 'League Aggregate Baselines', 'League Short Term Baselines', 'League Long Term Baselines'], key = 'table_var_hitter')
|
| 180 |
with col3:
|
| 181 |
splits_var_hitter = st.selectbox('Splits', ['Overall', 'RHP', 'LHP'], key = 'splits_var_hitter')
|
| 182 |
with col4:
|
|
|
|
| 189 |
st.write('All teams selected')
|
| 190 |
|
| 191 |
if table_var_hitter == 'Current Slate Overview':
|
| 192 |
+
disp_raw = slate_hitters
|
| 193 |
+
|
| 194 |
+
if team_var_hitter is not None:
|
| 195 |
+
disp_raw = disp_raw[disp_raw['Team'].isin(team_var_hitter)]
|
| 196 |
+
st.session_state['hitter_disp_frame'] = disp_raw
|
| 197 |
elif table_var_hitter == 'Active Baselines':
|
| 198 |
+
disp_raw = hitter_info
|
| 199 |
+
|
| 200 |
+
if team_var_hitter is not None:
|
| 201 |
+
disp_raw = disp_raw[disp_raw['Team'].isin(team_var_hitter)]
|
| 202 |
+
|
| 203 |
+
st.session_state['hitter_disp_frame'] = disp_raw
|
| 204 |
elif table_var_hitter == 'League Aggregate Baselines':
|
| 205 |
+
disp_raw = hitter_agg
|
| 206 |
+
|
| 207 |
+
if team_var_hitter is not None:
|
| 208 |
+
disp_raw = disp_raw[disp_raw['Team'].isin(team_var_hitter)]
|
| 209 |
+
|
| 210 |
+
st.session_state['hitter_disp_frame'] = disp_raw
|
| 211 |
elif table_var_hitter == 'League Short Term Baselines':
|
| 212 |
+
disp_raw = hitter_short
|
| 213 |
+
|
| 214 |
+
if team_var_hitter is not None:
|
| 215 |
+
disp_raw = disp_raw[disp_raw['Team'].isin(team_var_hitter)]
|
| 216 |
+
|
| 217 |
+
st.session_state['hitter_disp_frame'] = disp_raw
|
| 218 |
elif table_var_hitter == 'League Long Term Baselines':
|
| 219 |
+
disp_raw = hitter_long
|
| 220 |
+
|
| 221 |
+
if team_var_hitter is not None:
|
| 222 |
+
disp_raw = disp_raw[disp_raw['Team'].isin(team_var_hitter)]
|
| 223 |
+
|
| 224 |
+
st.session_state['hitter_disp_frame'] = disp_raw
|
| 225 |
|
| 226 |
hitter_disp_container = st.container(border = True)
|
| 227 |
hitter_disp_container = hitter_disp_container.empty()
|