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.
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 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
each_set_name = ['Overall', ' Top 1%', ' Top 5%', 'Top 10%', 'Top 20%']
|
312 |
-
|
313 |
-
|
314 |
stack_count_var = 0
|
315 |
-
for
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
if 'stack_frame' not in st.session_state:
|
321 |
-
st.session_state['stack_frame'] =
|
322 |
else:
|
323 |
-
st.session_state['stack_frame'] = pd.merge(st.session_state['stack_frame'],
|
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 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
each_set_name = ['Overall', ' Top 1%', ' Top 5%', 'Top 10%', 'Top 20%']
|
342 |
-
|
343 |
-
|
344 |
stack_count_var = 0
|
345 |
-
for
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
if 'stack_frame' not in st.session_state:
|
351 |
-
st.session_state['stack_frame'] =
|
352 |
else:
|
353 |
-
st.session_state['stack_frame'] = pd.merge(st.session_state['stack_frame'],
|
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).
|