James McCool commited on
Commit
81184ae
·
1 Parent(s): 9792614

Enhance player filtering in app.py by adding position selection feature

Browse files

- Introduced a radio button for selecting player positions, allowing users to filter displayed players based on their chosen positions.
- Updated the player frame to include a position column and applied a mask to filter players according to the selected positions, improving data relevance and user experience.

Files changed (1) hide show
  1. app.py +14 -2
app.py CHANGED
@@ -209,12 +209,22 @@ with tab2:
209
  with st.container():
210
  tab1, tab2, tab3, tab4 = st.tabs(['Player Used Info', 'Stack Used Info', 'Stack Size Info', 'General Info'])
211
  with tab1:
 
 
 
 
 
 
 
 
212
 
213
  if entry_parse_var == 'All':
214
  st.session_state['player_frame'] = create_player_exposures(working_df, player_columns)
215
  hold_frame = st.session_state['player_frame'].copy()
216
  hold_frame['Pos'] = hold_frame['Player'].map(map_dict['pos_map'])
217
- st.session_state['player_frame'].insert(2, 'Pos', hold_frame['Pos'])
 
 
218
  st.dataframe(st.session_state['player_frame'].
219
  sort_values(by='Exposure Overall', ascending=False).
220
  style.background_gradient(cmap='RdYlGn').
@@ -224,7 +234,9 @@ with tab2:
224
  st.session_state['player_frame'] = create_player_exposures(working_df, player_columns, entry_names)
225
  hold_frame = st.session_state['player_frame'].copy()
226
  hold_frame['Pos'] = hold_frame['Player'].map(map_dict['pos_map'])
227
- st.session_state['player_frame'].insert(2, 'Pos', hold_frame['Pos'])
 
 
228
  st.dataframe(st.session_state['player_frame'].
229
  sort_values(by='Exposure Overall', ascending=False).
230
  style.background_gradient(cmap='RdYlGn').
 
209
  with st.container():
210
  tab1, tab2, tab3, tab4 = st.tabs(['Player Used Info', 'Stack Used Info', 'Stack Size Info', 'General Info'])
211
  with tab1:
212
+ col1, col2 = st.columns(2)
213
+ with col1:
214
+ pos_var = st.radio('All Positions or Select?', ['All', 'Select'])
215
+ with col2:
216
+ if pos_var == 'Select':
217
+ pos_list = st.multiselect('Select Positions', ['P', 'C', '1B', '2B', '3B', 'SS', 'OF'])
218
+ else:
219
+ pos_list = ['P', 'C', '1B', '2B', '3B', 'SS', 'OF']
220
 
221
  if entry_parse_var == 'All':
222
  st.session_state['player_frame'] = create_player_exposures(working_df, player_columns)
223
  hold_frame = st.session_state['player_frame'].copy()
224
  hold_frame['Pos'] = hold_frame['Player'].map(map_dict['pos_map'])
225
+ st.session_state['player_frame'].insert(1, 'Pos', hold_frame['Pos'])
226
+ position_mask = st.session_state['player_frame']['Pos'].apply(lambda x: any(pos in x for pos in pos_list))
227
+ st.session_state['player_frame'] = st.session_state['player_frame'][position_mask]
228
  st.dataframe(st.session_state['player_frame'].
229
  sort_values(by='Exposure Overall', ascending=False).
230
  style.background_gradient(cmap='RdYlGn').
 
234
  st.session_state['player_frame'] = create_player_exposures(working_df, player_columns, entry_names)
235
  hold_frame = st.session_state['player_frame'].copy()
236
  hold_frame['Pos'] = hold_frame['Player'].map(map_dict['pos_map'])
237
+ st.session_state['player_frame'].insert(1, 'Pos', hold_frame['Pos'])
238
+ position_mask = st.session_state['player_frame']['Pos'].apply(lambda x: any(pos in x for pos in pos_list))
239
+ st.session_state['player_frame'] = st.session_state['player_frame'][position_mask]
240
  st.dataframe(st.session_state['player_frame'].
241
  sort_values(by='Exposure Overall', ascending=False).
242
  style.background_gradient(cmap='RdYlGn').