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).
|