James McCool commited on
Commit
30aeb4e
·
1 Parent(s): d342b82

Refactor stack metrics calculations in app.py

Browse files

- Renamed variables for clarity, changing 'contest_len' and related length variables to 'stacks_contest_len' and 'stacks_len_*' to better reflect their purpose in stack metrics calculations.
- Updated the logic for processing stack data in session state, ensuring consistent naming and improving readability in the dataframe presentation of exposure metrics.

Files changed (1) hide show
  1. app.py +28 -28
app.py CHANGED
@@ -303,24 +303,24 @@ with tab2:
303
  top_5per_stacks = pd.Series(list(working_df[working_df['percentile_finish'] <= 0.05]['stack'])).value_counts()
304
  top_10per_stacks = pd.Series(list(working_df[working_df['percentile_finish'] <= 0.10]['stack'])).value_counts()
305
  top_20per_stacks = pd.Series(list(working_df[working_df['percentile_finish'] <= 0.20]['stack'])).value_counts()
306
- contest_len = len(working_df)
307
- len_1per = len(working_df[working_df['percentile_finish'] <= 0.01])
308
- len_5per = len(working_df[working_df['percentile_finish'] <= 0.05])
309
- len_10per = len(working_df[working_df['percentile_finish'] <= 0.10])
310
- len_20per = len(working_df[working_df['percentile_finish'] <= 0.20])
311
  each_set_name = ['Overall', ' Top 1%', ' Top 5%', 'Top 10%', 'Top 20%']
312
- each_frame_set = [overall_stacks, top_1per_stacks, top_5per_stacks, top_10per_stacks, top_20per_stacks]
313
- each_len_set = [contest_len, len_1per, len_5per, len_10per, len_20per]
314
  stack_count_var = 0
315
- for each_set in each_frame_set:
316
- set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Stack', 'count': 'Count'})
317
- set_frame['Percent'] = set_frame['Count'] / each_len_set[stack_count_var]
318
- set_frame = set_frame[['Stack', 'Percent']]
319
- set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[stack_count_var]}'})
320
  if 'stack_frame' not in st.session_state:
321
- st.session_state['stack_frame'] = set_frame
322
  else:
323
- st.session_state['stack_frame'] = pd.merge(st.session_state['stack_frame'], set_frame, on='Stack', how='outer')
324
  stack_count_var += 1
325
  st.dataframe(st.session_state['stack_frame'].
326
  sort_values(by='Exposure Overall', ascending=False).
@@ -333,24 +333,24 @@ with tab2:
333
  top_5per_stacks = pd.Series(list(working_df[working_df['percentile_finish'] <= 0.05]['stack'])).value_counts()
334
  top_10per_stacks = pd.Series(list(working_df[working_df['percentile_finish'] <= 0.10]['stack'])).value_counts()
335
  top_20per_stacks = pd.Series(list(working_df[working_df['percentile_finish'] <= 0.20]['stack'])).value_counts()
336
- contest_len = len(working_df)
337
- len_1per = len(working_df[working_df['percentile_finish'] <= 0.01])
338
- len_5per = len(working_df[working_df['percentile_finish'] <= 0.05])
339
- len_10per = len(working_df[working_df['percentile_finish'] <= 0.10])
340
- len_20per = len(working_df[working_df['percentile_finish'] <= 0.20])
341
  each_set_name = ['Overall', ' Top 1%', ' Top 5%', 'Top 10%', 'Top 20%']
342
- each_frame_set = [overall_stacks, top_1per_stacks, top_5per_stacks, top_10per_stacks, top_20per_stacks]
343
- each_len_set = [contest_len, len_1per, len_5per, len_10per, len_20per]
344
  stack_count_var = 0
345
- for each_set in each_frame_set:
346
- set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Stack', 'count': 'Count'})
347
- set_frame['Percent'] = set_frame['Count'] / each_len_set[stack_count_var]
348
- set_frame = set_frame[['Stack', 'Percent']]
349
- set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[stack_count_var]}'})
350
  if 'stack_frame' not in st.session_state:
351
- st.session_state['stack_frame'] = set_frame
352
  else:
353
- st.session_state['stack_frame'] = pd.merge(st.session_state['stack_frame'], set_frame, on='Stack', how='outer')
354
  stack_count_var += 1
355
  st.dataframe(st.session_state['stack_frame'].
356
  sort_values(by='Exposure Overall', ascending=False).
 
303
  top_5per_stacks = pd.Series(list(working_df[working_df['percentile_finish'] <= 0.05]['stack'])).value_counts()
304
  top_10per_stacks = pd.Series(list(working_df[working_df['percentile_finish'] <= 0.10]['stack'])).value_counts()
305
  top_20per_stacks = pd.Series(list(working_df[working_df['percentile_finish'] <= 0.20]['stack'])).value_counts()
306
+ stacks_contest_len = len(working_df)
307
+ stacks_len_1per = len(working_df[working_df['percentile_finish'] <= 0.01])
308
+ stacks_len_5per = len(working_df[working_df['percentile_finish'] <= 0.05])
309
+ stacks_len_10per = len(working_df[working_df['percentile_finish'] <= 0.10])
310
+ stacks_len_20per = len(working_df[working_df['percentile_finish'] <= 0.20])
311
  each_set_name = ['Overall', ' Top 1%', ' Top 5%', 'Top 10%', 'Top 20%']
312
+ each_stacks_set = [overall_stacks, top_1per_stacks, top_5per_stacks, top_10per_stacks, top_20per_stacks]
313
+ each_stacks_len_set = [stacks_contest_len, stacks_len_1per, stacks_len_5per, stacks_len_10per, stacks_len_20per]
314
  stack_count_var = 0
315
+ for each_stack in each_stacks_set:
316
+ stack_frame = each_stack.to_frame().reset_index().rename(columns={'index': 'Stack', 'count': 'Count'})
317
+ stack_frame['Percent'] = stack_frame['Count'] / each_stacks_len_set[stack_count_var]
318
+ stack_frame = stack_frame[['Stack', 'Percent']]
319
+ stack_frame = stack_frame.rename(columns={'Percent': f'Exposure {each_set_name[stack_count_var]}'})
320
  if 'stack_frame' not in st.session_state:
321
+ st.session_state['stack_frame'] = stack_frame
322
  else:
323
+ st.session_state['stack_frame'] = pd.merge(st.session_state['stack_frame'], stack_frame, on='Stack', how='outer')
324
  stack_count_var += 1
325
  st.dataframe(st.session_state['stack_frame'].
326
  sort_values(by='Exposure Overall', ascending=False).
 
333
  top_5per_stacks = pd.Series(list(working_df[working_df['percentile_finish'] <= 0.05]['stack'])).value_counts()
334
  top_10per_stacks = pd.Series(list(working_df[working_df['percentile_finish'] <= 0.10]['stack'])).value_counts()
335
  top_20per_stacks = pd.Series(list(working_df[working_df['percentile_finish'] <= 0.20]['stack'])).value_counts()
336
+ stacks_contest_len = len(working_df)
337
+ stacks_len_1per = len(working_df[working_df['percentile_finish'] <= 0.01])
338
+ stacks_len_5per = len(working_df[working_df['percentile_finish'] <= 0.05])
339
+ stacks_len_10per = len(working_df[working_df['percentile_finish'] <= 0.10])
340
+ stacks_len_20per = len(working_df[working_df['percentile_finish'] <= 0.20])
341
  each_set_name = ['Overall', ' Top 1%', ' Top 5%', 'Top 10%', 'Top 20%']
342
+ each_stacks_set = [overall_stacks, top_1per_stacks, top_5per_stacks, top_10per_stacks, top_20per_stacks]
343
+ each_stacks_len_set = [stacks_contest_len, stacks_len_1per, stacks_len_5per, stacks_len_10per, stacks_len_20per]
344
  stack_count_var = 0
345
+ for each_stack in each_stacks_set:
346
+ stack_frame = each_stack.to_frame().reset_index().rename(columns={'index': 'Stack', 'count': 'Count'})
347
+ stack_frame['Percent'] = stack_frame['Count'] / each_stacks_len_set[stack_count_var]
348
+ stack_frame = stack_frame[['Stack', 'Percent']]
349
+ stack_frame = stack_frame.rename(columns={'Percent': f'Exposure {each_set_name[stack_count_var]}'})
350
  if 'stack_frame' not in st.session_state:
351
+ st.session_state['stack_frame'] = stack_frame
352
  else:
353
+ st.session_state['stack_frame'] = pd.merge(st.session_state['stack_frame'], stack_frame, on='Stack', how='outer')
354
  stack_count_var += 1
355
  st.dataframe(st.session_state['stack_frame'].
356
  sort_values(by='Exposure Overall', ascending=False).