James McCool
commited on
Commit
·
fd1c071
1
Parent(s):
f344ebf
Implement conditional initialization for duplication frame in app.py
Browse files- Added a check to ensure 'duplication_frame' is only created if it does not already exist in session state, enhancing data management and preventing unnecessary recalculations.
- This update improves application performance and ensures that user-specific selections are accurately reflected in the duplication metrics.
app.py
CHANGED
@@ -460,14 +460,14 @@ with tab2:
|
|
460 |
user_dupe_select = user_dupe_select
|
461 |
else:
|
462 |
user_dupe_select = None
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
if user_dupe_var == 'Specific':
|
472 |
st.session_state['duplication_frame'] = st.session_state['duplication_frame'][st.session_state['duplication_frame']['BaseName'].isin(user_dupe_select)]
|
473 |
|
|
|
460 |
user_dupe_select = user_dupe_select
|
461 |
else:
|
462 |
user_dupe_select = None
|
463 |
+
if 'duplication_frame' not in st.session_state:
|
464 |
+
dupe_frame = st.session_state['display_contest_info'][['BaseName', 'EntryCount', 'dupes', 'uniques', 'under_5', 'under_10']]
|
465 |
+
dupe_frame['average_dupes'] = dupe_frame['dupes'].mean()
|
466 |
+
dupe_frame['uniques%'] = dupe_frame['uniques'] / dupe_frame['EntryCount']
|
467 |
+
dupe_frame['under_5%'] = dupe_frame['under_5'] / dupe_frame['EntryCount']
|
468 |
+
dupe_frame['under_10%'] = dupe_frame['under_10'] / dupe_frame['EntryCount']
|
469 |
+
dupe_frame = dupe_frame[['BaseName', 'EntryCount', 'average_dupes', 'uniques', 'uniques%', 'under_5', 'under_5%', 'under_10', 'under_10%']].drop_duplicates(subset='BaseName', keep='first')
|
470 |
+
st.session_state['duplication_frame'] = dupe_frame.sort_values(by='EntryCount', ascending=False)
|
471 |
if user_dupe_var == 'Specific':
|
472 |
st.session_state['duplication_frame'] = st.session_state['duplication_frame'][st.session_state['duplication_frame']['BaseName'].isin(user_dupe_select)]
|
473 |
|