James McCool commited on
Commit
1549530
·
1 Parent(s): 53b9faf

Add player and scenario filtering to Gamelogs display

Browse files

Enhance the Gamelogs tab with new filtering capabilities:
- Add player search dropdown to filter gamelogs by specific player
- Implement scenario filtering for wins, losses, or all games
- Maintain existing display formatting and gradient styling

Files changed (1) hide show
  1. app.py +17 -1
app.py CHANGED
@@ -616,10 +616,11 @@ if st.button("Run"):
616
  else:
617
  st.session_state.team_data, st.session_state.opp_boost, st.session_state.results_dict, st.session_state.gamelogs = init_player_data(game_count, selected_players, selected_opponent, win_loss_settings, kill_predictions, death_predictions, start_date, end_date)
618
 
619
- st.session_state.gamelogs_display = st.session_state.gamelogs[['date', 'teamname', 'Opponent', 'playername', 'position', 'result', 'kills', 'playername_avg_kills_win', 'deaths', 'playername_avg_deaths_win', 'assists', 'playername_avg_assists_win', 'total_cs', 'playername_avg_total_cs_win', 'fantasy']]
620
  st.session_state.gamelogs_display = st.session_state.gamelogs_display.rename(columns = {'teamname': 'Team', 'Opponent': 'Opp', 'playername': 'Player',
621
  'position': 'Pos', 'result': 'W/L', 'playername_avg_kills_win': 'Avg_Kill_Win',
622
  'playername_avg_deaths_win': 'Avg_Death_Win', 'playername_avg_assists_win': 'Avg_Assist_Win', 'playername_avg_total_cs_win': 'Avg_CS_Win',
 
623
  'kills': 'Kill', 'deaths': 'Death', 'assists': 'Assist', 'total_cs': 'CS', 'fantasy': 'Fantasy'})
624
  st.session_state.gamelogs_display = st.session_state.gamelogs_display[st.session_state.gamelogs_display['Pos'] != 'team']
625
  st.session_state.gamelogs_display = st.session_state.gamelogs_display.sort_values(by = ['date'], ascending = False)
@@ -788,4 +789,19 @@ with tab3:
788
  with tab4:
789
  if 'gamelogs_display' in st.session_state:
790
  st.subheader("Gamelogs")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
791
  st.dataframe(st.session_state.gamelogs_display.style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').format(precision=2), use_container_width = True)
 
616
  else:
617
  st.session_state.team_data, st.session_state.opp_boost, st.session_state.results_dict, st.session_state.gamelogs = init_player_data(game_count, selected_players, selected_opponent, win_loss_settings, kill_predictions, death_predictions, start_date, end_date)
618
 
619
+ st.session_state.gamelogs_display = st.session_state.gamelogs[['date', 'teamname', 'Opponent', 'playername', 'position', 'result', 'kills', 'playername_avg_kills_win', 'playername_avg_kills_loss', 'deaths', 'playername_avg_deaths_win', 'playername_avg_deaths_loss', 'assists', 'playername_avg_assists_win', 'playername_avg_assists_loss', 'total_cs', 'playername_avg_total_cs_win', 'playername_avg_total_cs_loss', 'fantasy']]
620
  st.session_state.gamelogs_display = st.session_state.gamelogs_display.rename(columns = {'teamname': 'Team', 'Opponent': 'Opp', 'playername': 'Player',
621
  'position': 'Pos', 'result': 'W/L', 'playername_avg_kills_win': 'Avg_Kill_Win',
622
  'playername_avg_deaths_win': 'Avg_Death_Win', 'playername_avg_assists_win': 'Avg_Assist_Win', 'playername_avg_total_cs_win': 'Avg_CS_Win',
623
+ 'playername_avg_kills_loss': 'Avg_Kill_Loss', 'playername_avg_deaths_loss': 'Avg_Death_Loss', 'playername_avg_assists_loss': 'Avg_Assist_Loss', 'playername_avg_total_cs_loss': 'Avg_CS_Loss',
624
  'kills': 'Kill', 'deaths': 'Death', 'assists': 'Assist', 'total_cs': 'CS', 'fantasy': 'Fantasy'})
625
  st.session_state.gamelogs_display = st.session_state.gamelogs_display[st.session_state.gamelogs_display['Pos'] != 'team']
626
  st.session_state.gamelogs_display = st.session_state.gamelogs_display.sort_values(by = ['date'], ascending = False)
 
789
  with tab4:
790
  if 'gamelogs_display' in st.session_state:
791
  st.subheader("Gamelogs")
792
+ with st.container():
793
+ col1, col2 = st.columns([4, 4])
794
+ with col1:
795
+ player_search = st.selectbox("Search for a player", st.session_state.gamelogs_display['Player'].unique().tolist())
796
+ with col2:
797
+ scenario_search = st.selectbox("Wins, Losses, or All games?", ['Wins', 'Losses', 'All'])
798
+
799
+ st.session_state.gamelogs_display = st.session_state.gamelogs_display[st.session_state.gamelogs_display['Player'] == player_search]
800
+ if scenario_search == 'Wins':
801
+ st.session_state.gamelogs_display = st.session_state.gamelogs_display[st.session_state.gamelogs_display['W/L'] == 1]
802
+ elif scenario_search == 'Losses':
803
+ st.session_state.gamelogs_display = st.session_state.gamelogs_display[st.session_state.gamelogs_display['W/L'] == 0]
804
+ else:
805
+ st.session_state.gamelogs_display = st.session_state.gamelogs_display
806
+
807
  st.dataframe(st.session_state.gamelogs_display.style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').format(precision=2), use_container_width = True)