James McCool commited on
Commit
5763d8f
·
1 Parent(s): 1d5d805

Refactor player data handling in app.py

Browse files

- Moved player selection logic to a new loop for improved clarity and organization, allowing for easier adjustments to player subsets based on contest size.
- Removed redundant code by consolidating player selection into a single section, enhancing maintainability and readability of the code.
- This change streamlines the data processing workflow, ensuring efficient calculations of player exposure percentages.

Files changed (1) hide show
  1. app.py +6 -8
app.py CHANGED
@@ -102,6 +102,12 @@ with tab2:
102
  'cpt_own_map': dict(zip(st.session_state['projections_df']['player_names'], st.session_state['projections_df']['captain ownership']))
103
  }
104
  # Create a copy of the dataframe for calculations
 
 
 
 
 
 
105
  working_df = st.session_state['Contest'].copy()
106
 
107
  with col1:
@@ -226,12 +232,6 @@ with tab2:
226
  hide_index=True
227
  )
228
 
229
- for col in player_columns:
230
- contest_players = working_df.copy()
231
- players_1per = working_df.head(int(len(working_df) * 0.01))
232
- players_5per = working_df.head(int(len(working_df) * 0.05))
233
- players_10per = working_df.head(int(len(working_df) * 0.10))
234
- players_20per = working_df.head(int(len(working_df) * 0.20))
235
  player_counts = pd.Series(list(contest_players[player_columns].values.flatten())).value_counts()
236
  player_1per_counts = pd.Series(list(players_1per[player_columns].values.flatten())).value_counts()
237
  player_5per_counts = pd.Series(list(players_5per[player_columns].values.flatten())).value_counts()
@@ -255,7 +255,6 @@ with tab2:
255
  player_count_var = 0
256
  for each_set in [player_counts, player_1per_counts, player_5per_counts, player_10per_counts, player20_per_counts]:
257
  set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Player', 'count': 'Count'})
258
- st.write(len(each_frame_set[player_count_var]))
259
  set_frame['Percent'] = set_frame['Count'] / len(each_frame_set[player_count_var])
260
  set_frame = set_frame[['Player', 'Percent']]
261
  set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[player_count_var]}'})
@@ -273,7 +272,6 @@ with tab2:
273
  stack_count_var = 0
274
  for each_set in [stack_counts, stack_1per_counts, stack_5per_counts, stack_10per_counts, stack_20per_counts]:
275
  set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Stack', 'count': 'Count'})
276
- st.write(len(each_frame_set[stack_count_var]))
277
  set_frame['Percent'] = set_frame['Count'] / len(each_frame_set[stack_count_var])
278
  set_frame = set_frame[['Stack', 'Percent']]
279
  set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[stack_count_var]}'})
 
102
  'cpt_own_map': dict(zip(st.session_state['projections_df']['player_names'], st.session_state['projections_df']['captain ownership']))
103
  }
104
  # Create a copy of the dataframe for calculations
105
+ for col in player_columns:
106
+ contest_players = st.session_state['Contest'].copy()
107
+ players_1per = st.session_state['Contest'].head(int(len(st.session_state['Contest']) * 0.01))
108
+ players_5per = st.session_state['Contest'].head(int(len(st.session_state['Contest']) * 0.05))
109
+ players_10per = st.session_state['Contest'].head(int(len(st.session_state['Contest']) * 0.10))
110
+ players_20per = st.session_state['Contest'].head(int(len(st.session_state['Contest']) * 0.20))
111
  working_df = st.session_state['Contest'].copy()
112
 
113
  with col1:
 
232
  hide_index=True
233
  )
234
 
 
 
 
 
 
 
235
  player_counts = pd.Series(list(contest_players[player_columns].values.flatten())).value_counts()
236
  player_1per_counts = pd.Series(list(players_1per[player_columns].values.flatten())).value_counts()
237
  player_5per_counts = pd.Series(list(players_5per[player_columns].values.flatten())).value_counts()
 
255
  player_count_var = 0
256
  for each_set in [player_counts, player_1per_counts, player_5per_counts, player_10per_counts, player20_per_counts]:
257
  set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Player', 'count': 'Count'})
 
258
  set_frame['Percent'] = set_frame['Count'] / len(each_frame_set[player_count_var])
259
  set_frame = set_frame[['Player', 'Percent']]
260
  set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[player_count_var]}'})
 
272
  stack_count_var = 0
273
  for each_set in [stack_counts, stack_1per_counts, stack_5per_counts, stack_10per_counts, stack_20per_counts]:
274
  set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Stack', 'count': 'Count'})
 
275
  set_frame['Percent'] = set_frame['Count'] / len(each_frame_set[stack_count_var])
276
  set_frame = set_frame[['Stack', 'Percent']]
277
  set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[stack_count_var]}'})