James McCool commited on
Commit
00f9a6c
·
1 Parent(s): 45351e3

Refactor player comparison logic in app.py and create_player_comparison.py

Browse files

- Updated app.py to store the player comparison DataFrame in a local variable instead of session state, improving code clarity and reducing session state dependency.
- Adjusted the calculation of player exposure percentages in create_player_comparison.py to ensure accuracy by using the correct subset of data for each user.

app.py CHANGED
@@ -436,8 +436,8 @@ with tab2:
436
  else:
437
  comp_player_select = comp_player_select
438
  if comp_player_var == 'Yes':
439
- st.session_state['player_frame'] = create_player_comparison(st.session_state['display_contest_info'], st.session_state['player_columns'], comp_player_select)
440
- st.dataframe(st.session_state['player_frame'].style.background_gradient(cmap='RdYlGn', axis=1).format(formatter='{:.2%}', subset=st.session_state['player_frame'].iloc[:, 2:].select_dtypes(include=['number']).columns), hide_index=True)
441
  else:
442
  if st.session_state['entry_parse_var'] == 'All':
443
 
@@ -458,7 +458,6 @@ with tab2:
458
  format(formatter='{:.2%}', subset=st.session_state['player_frame'].iloc[:, 2:].select_dtypes(include=['number']).columns),
459
  hide_index=True)
460
  else:
461
-
462
  st.session_state['player_frame'] = create_player_exposures(st.session_state['display_contest_info'], st.session_state['player_columns'], st.session_state['entry_names'])
463
  hold_frame = st.session_state['player_frame'].copy()
464
  if sport_select == 'GOLF':
 
436
  else:
437
  comp_player_select = comp_player_select
438
  if comp_player_var == 'Yes':
439
+ player_exp_comp = create_player_comparison(st.session_state['display_contest_info'], st.session_state['player_columns'], comp_player_select)
440
+ st.dataframe(player_exp_comp.style.background_gradient(cmap='RdYlGn', axis=1).format(formatter='{:.2%}', subset=player_exp_comp.select_dtypes(include=['number']).columns), hide_index=True)
441
  else:
442
  if st.session_state['entry_parse_var'] == 'All':
443
 
 
458
  format(formatter='{:.2%}', subset=st.session_state['player_frame'].iloc[:, 2:].select_dtypes(include=['number']).columns),
459
  hide_index=True)
460
  else:
 
461
  st.session_state['player_frame'] = create_player_exposures(st.session_state['display_contest_info'], st.session_state['player_columns'], st.session_state['entry_names'])
462
  hold_frame = st.session_state['player_frame'].copy()
463
  if sport_select == 'GOLF':
global_func/create_player_comparison.py CHANGED
@@ -14,7 +14,7 @@ def create_player_comparison(df: pd.DataFrame, player_columns: list, entrants: l
14
  overall_players = pd.Series(list(df[df['BaseName'] == each_user][player_columns].values.flatten())).value_counts()
15
 
16
  set_frame = overall_players.to_frame().reset_index().rename(columns={'index': 'Player', 'count': 'Count'})
17
- set_frame['Percent'] = set_frame['Count'] / len(overall_players)
18
  set_frame = set_frame[['Player', 'Percent']]
19
  set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_user}'})
20
  player_frame = pd.merge(player_frame, set_frame, on='Player', how='outer')
 
14
  overall_players = pd.Series(list(df[df['BaseName'] == each_user][player_columns].values.flatten())).value_counts()
15
 
16
  set_frame = overall_players.to_frame().reset_index().rename(columns={'index': 'Player', 'count': 'Count'})
17
+ set_frame['Percent'] = set_frame['Count'] / len(overall_players[overall_players['BaseName'] == each_user])
18
  set_frame = set_frame[['Player', 'Percent']]
19
  set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_user}'})
20
  player_frame = pd.merge(player_frame, set_frame, on='Player', how='outer')