James McCool commited on
Commit
56e1d7b
·
1 Parent(s): 661b320

Refactor player subset calculations in app.py

Browse files

- Updated the logic for calculating player subsets based on percentile finishes, replacing head-based selection with conditional filtering for improved accuracy.
- Adjusted the calculation of lengths for each player subset to directly reference the newly defined subsets, enhancing clarity and reliability in metrics computation.

Files changed (1) hide show
  1. app.py +8 -10
app.py CHANGED
@@ -231,15 +231,15 @@ with tab2:
231
  )
232
 
233
  contest_players = working_df.copy()
234
- players_1per = working_df.head(int(len(working_df) * 0.01))
235
- players_5per = working_df.head(int(len(working_df) * 0.05))
236
- players_10per = working_df.head(int(len(working_df) * 0.10))
237
- players_20per = working_df.head(int(len(working_df) * 0.20))
238
  contest_len = len(contest_players)
239
- len_1per = len(st.session_state['Contest']) * 0.01
240
- len_5per = len(st.session_state['Contest']) * 0.05
241
- len_10per = len(st.session_state['Contest']) * 0.10
242
- len_20per = len(st.session_state['Contest']) * 0.20
243
  ######## Going to try a groupby based on finishing percentiles here next
244
  player_counts = pd.Series(list(contest_players[player_columns].values.flatten())).value_counts()
245
  player_1per_counts = pd.Series(list(players_1per[player_columns].values.flatten())).value_counts()
@@ -265,7 +265,6 @@ with tab2:
265
  player_count_var = 0
266
  for each_set in [player_counts, player_1per_counts, player_5per_counts, player_10per_counts, player20_per_counts]:
267
  set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Player', 'count': 'Count'})
268
- st.write(each_len_set[player_count_var])
269
  set_frame['Percent'] = set_frame['Count'] / each_len_set[player_count_var]
270
  set_frame = set_frame[['Player', 'Percent']]
271
  set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[player_count_var]}'})
@@ -283,7 +282,6 @@ with tab2:
283
  stack_count_var = 0
284
  for each_set in [stack_counts, stack_1per_counts, stack_5per_counts, stack_10per_counts, stack_20per_counts]:
285
  set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Stack', 'count': 'Count'})
286
- st.write(each_len_set[stack_count_var])
287
  set_frame['Percent'] = set_frame['Count'] / each_len_set[stack_count_var]
288
  set_frame = set_frame[['Stack', 'Percent']]
289
  set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[stack_count_var]}'})
 
231
  )
232
 
233
  contest_players = working_df.copy()
234
+ players_1per = working_df[working_df['percentile_finish'] <= 0.01]
235
+ players_5per = working_df[working_df['percentile_finish'] <= 0.05]
236
+ players_10per = working_df[working_df['percentile_finish'] <= 0.10]
237
+ players_20per = working_df[working_df['percentile_finish'] <= 0.20]
238
  contest_len = len(contest_players)
239
+ len_1per = len(players_1per)
240
+ len_5per = len(players_5per)
241
+ len_10per = len(players_10per)
242
+ len_20per = len(players_20per)
243
  ######## Going to try a groupby based on finishing percentiles here next
244
  player_counts = pd.Series(list(contest_players[player_columns].values.flatten())).value_counts()
245
  player_1per_counts = pd.Series(list(players_1per[player_columns].values.flatten())).value_counts()
 
265
  player_count_var = 0
266
  for each_set in [player_counts, player_1per_counts, player_5per_counts, player_10per_counts, player20_per_counts]:
267
  set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Player', 'count': 'Count'})
 
268
  set_frame['Percent'] = set_frame['Count'] / each_len_set[player_count_var]
269
  set_frame = set_frame[['Player', 'Percent']]
270
  set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[player_count_var]}'})
 
282
  stack_count_var = 0
283
  for each_set in [stack_counts, stack_1per_counts, stack_5per_counts, stack_10per_counts, stack_20per_counts]:
284
  set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Stack', 'count': 'Count'})
 
285
  set_frame['Percent'] = set_frame['Count'] / each_len_set[stack_count_var]
286
  set_frame = set_frame[['Stack', 'Percent']]
287
  set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[stack_count_var]}'})