James McCool commited on
Commit
d3bb780
·
1 Parent(s): e00631e

Refactor contest player metrics calculation in app.py

Browse files

- Consolidated the logic for calculating contest player metrics by moving the initialization of player subsets and contest length calculations outside of the loop, improving code clarity and efficiency.
- This change enhances the maintainability of the code and ensures accurate calculations of player exposure percentages across different contest sizes.

Files changed (1) hide show
  1. app.py +12 -13
app.py CHANGED
@@ -226,17 +226,16 @@ 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
- contest_len = len(st.session_state['Contest'])
236
- len_1per = len(st.session_state['Contest']) * 0.01
237
- len_5per = len(st.session_state['Contest']) * 0.05
238
- len_10per = len(st.session_state['Contest']) * 0.10
239
- len_20per = len(st.session_state['Contest']) * 0.20
240
  player_counts = pd.Series(list(contest_players[player_columns].values.flatten())).value_counts()
241
  player_1per_counts = pd.Series(list(players_1per[player_columns].values.flatten())).value_counts()
242
  player_5per_counts = pd.Series(list(players_5per[player_columns].values.flatten())).value_counts()
@@ -261,7 +260,7 @@ with tab2:
261
  player_count_var = 0
262
  for each_set in [player_counts, player_1per_counts, player_5per_counts, player_10per_counts, player20_per_counts]:
263
  set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Player', 'count': 'Count'})
264
- st.write(len(each_frame_set[player_count_var]))
265
  set_frame['Percent'] = set_frame['Count'] / each_len_set[player_count_var]
266
  set_frame = set_frame[['Player', 'Percent']]
267
  set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[player_count_var]}'})
@@ -279,7 +278,7 @@ with tab2:
279
  stack_count_var = 0
280
  for each_set in [stack_counts, stack_1per_counts, stack_5per_counts, stack_10per_counts, stack_20per_counts]:
281
  set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Stack', 'count': 'Count'})
282
- st.write(len(each_frame_set[stack_count_var]))
283
  set_frame['Percent'] = set_frame['Count'] / each_len_set[stack_count_var]
284
  set_frame = set_frame[['Stack', 'Percent']]
285
  set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[stack_count_var]}'})
 
226
  hide_index=True
227
  )
228
 
229
+ contest_players = working_df.copy()
230
+ players_1per = working_df.head(int(len(working_df) * 0.01))
231
+ players_5per = working_df.head(int(len(working_df) * 0.05))
232
+ players_10per = working_df.head(int(len(working_df) * 0.10))
233
+ players_20per = working_df.head(int(len(working_df) * 0.20))
234
+ contest_len = len(contest_players)
235
+ len_1per = len(st.session_state['Contest']) * 0.01
236
+ len_5per = len(st.session_state['Contest']) * 0.05
237
+ len_10per = len(st.session_state['Contest']) * 0.10
238
+ len_20per = len(st.session_state['Contest']) * 0.20
 
239
  player_counts = pd.Series(list(contest_players[player_columns].values.flatten())).value_counts()
240
  player_1per_counts = pd.Series(list(players_1per[player_columns].values.flatten())).value_counts()
241
  player_5per_counts = pd.Series(list(players_5per[player_columns].values.flatten())).value_counts()
 
260
  player_count_var = 0
261
  for each_set in [player_counts, player_1per_counts, player_5per_counts, player_10per_counts, player20_per_counts]:
262
  set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Player', 'count': 'Count'})
263
+ st.write(each_len_set[player_count_var])
264
  set_frame['Percent'] = set_frame['Count'] / each_len_set[player_count_var]
265
  set_frame = set_frame[['Player', 'Percent']]
266
  set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[player_count_var]}'})
 
278
  stack_count_var = 0
279
  for each_set in [stack_counts, stack_1per_counts, stack_5per_counts, stack_10per_counts, stack_20per_counts]:
280
  set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Stack', 'count': 'Count'})
281
+ st.write(each_len_set[player_count_var])
282
  set_frame['Percent'] = set_frame['Count'] / each_len_set[stack_count_var]
283
  set_frame = set_frame[['Stack', 'Percent']]
284
  set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[stack_count_var]}'})