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.

Files changed (1) hide show
  1. 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
- st.session_state['hitter_disp_frame'] = slate_hitters
 
 
 
 
180
  elif table_var_hitter == 'Active Baselines':
181
- st.session_state['hitter_disp_frame'] = hitter_info
 
 
 
 
 
182
  elif table_var_hitter == 'League Aggregate Baselines':
183
- st.session_state['hitter_disp_frame'] = hitter_agg
 
 
 
 
 
184
  elif table_var_hitter == 'League Short Term Baselines':
185
- st.session_state['hitter_disp_frame'] = hitter_short
 
 
 
 
 
186
  elif table_var_hitter == 'League Long Term Baselines':
187
- st.session_state['hitter_disp_frame'] = hitter_long
 
 
 
 
 
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()