James McCool commited on
Commit
8e43993
·
1 Parent(s): a9d2b2a

Add player exposure formatting and enhance dataframe display in app.py

Browse files

- Introduced a dictionary for player exposure formatting to standardize percentage displays across the application.
- Updated the logic for displaying player exposure percentages in the dataframe, applying background gradients for improved visual clarity.
- Ensured consistent handling of player counts by referencing the correct data frames for percentage calculations, enhancing overall data representation.

Files changed (1) hide show
  1. app.py +5 -2
app.py CHANGED
@@ -17,6 +17,8 @@ from global_func.highlight_rows import highlight_changes, highlight_changes_winn
17
  from global_func.load_csv import load_csv
18
  from global_func.find_csv_mismatches import find_csv_mismatches
19
 
 
 
20
  tab1, tab2 = st.tabs(["Data Load", "Contest Analysis"])
21
  with tab1:
22
  if st.button('Clear data', key='reset1'):
@@ -195,13 +197,14 @@ with tab2:
195
  player_10per_counts = pd.Series(list(players_10per[player_columns].values.flatten())).value_counts()
196
  player20_per_counts = pd.Series(list(players_20per[player_columns].values.flatten())).value_counts()
197
  each_set_name = ['Overall', ' Top 1%', ' Top 5%', 'Top 10%', 'Top 20%']
 
198
  with st.container():
199
  tab1, tab2 = st.tabs(['Player Used Info', 'Stack Used Info'])
200
  with tab1:
201
  count_var = 0
202
  for each_set in [player_counts, player_1per_counts, player_5per_counts, player_10per_counts, player20_per_counts]:
203
  set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Player', 'count': 'Count'})
204
- set_frame['Percent'] = set_frame['Count'] / len(working_df)
205
  set_frame = set_frame[['Player', 'Percent']]
206
  set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[count_var]}'})
207
  if 'player_frame' not in st.session_state:
@@ -209,7 +212,7 @@ with tab2:
209
  else:
210
  st.session_state['player_frame'] = pd.merge(st.session_state['player_frame'], set_frame, on='Player', how='outer')
211
  count_var += 1
212
- st.dataframe(st.session_state['player_frame'])
213
  with tab2:
214
  stack_counts = pd.Series(list(working_df['stack'])).value_counts()
215
  stack_frame = stack_counts.to_frame().reset_index().rename(columns={'index': 'Stack', 'count': 'Count'})
 
17
  from global_func.load_csv import load_csv
18
  from global_func.find_csv_mismatches import find_csv_mismatches
19
 
20
+ player_exposure_format = {'Exposure Overall': '{:.2%}', 'Exposure Top 1%': '{:.2%}', 'Exposure Top 5%': '{:.2%}', 'Exposure Top 10%': '{:.2%}', 'Exposure Top 20%': '{:.2%}'}
21
+
22
  tab1, tab2 = st.tabs(["Data Load", "Contest Analysis"])
23
  with tab1:
24
  if st.button('Clear data', key='reset1'):
 
197
  player_10per_counts = pd.Series(list(players_10per[player_columns].values.flatten())).value_counts()
198
  player20_per_counts = pd.Series(list(players_20per[player_columns].values.flatten())).value_counts()
199
  each_set_name = ['Overall', ' Top 1%', ' Top 5%', 'Top 10%', 'Top 20%']
200
+ each_frame_set = [contest_players, players_1per, players_5per, players_10per, players_20per]
201
  with st.container():
202
  tab1, tab2 = st.tabs(['Player Used Info', 'Stack Used Info'])
203
  with tab1:
204
  count_var = 0
205
  for each_set in [player_counts, player_1per_counts, player_5per_counts, player_10per_counts, player20_per_counts]:
206
  set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Player', 'count': 'Count'})
207
+ set_frame['Percent'] = set_frame['Count'] / len(each_frame_set[count_var])
208
  set_frame = set_frame[['Player', 'Percent']]
209
  set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[count_var]}'})
210
  if 'player_frame' not in st.session_state:
 
212
  else:
213
  st.session_state['player_frame'] = pd.merge(st.session_state['player_frame'], set_frame, on='Player', how='outer')
214
  count_var += 1
215
+ st.dataframe(st.session_state['player_frame'].style.background_gradient(cmap='RgYlGn').format(player_exposure_format, precision=2), hide_index=True)
216
  with tab2:
217
  stack_counts = pd.Series(list(working_df['stack'])).value_counts()
218
  stack_frame = stack_counts.to_frame().reset_index().rename(columns={'index': 'Stack', 'count': 'Count'})