James McCool
commited on
Commit
·
2b8ea88
1
Parent(s):
44c87c6
Sure
Browse files
app.py
CHANGED
|
@@ -716,6 +716,24 @@ if selected_tab == 'Data Load':
|
|
| 716 |
st.dataframe(projections.head(10))
|
| 717 |
|
| 718 |
if st.session_state['portfolio_loaded'] and projections_file:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 719 |
if st.session_state['portfolio'] is not None and projections is not None:
|
| 720 |
|
| 721 |
st.subheader("Name Matching Analysis")
|
|
@@ -793,8 +811,11 @@ if selected_tab == 'Data Load':
|
|
| 793 |
st.session_state['portfolio'].to_parquet(buffer, compression='snappy')
|
| 794 |
st.session_state['origin_portfolio'] = buffer.getvalue()
|
| 795 |
|
| 796 |
-
# Clear large objects from session state to free memory
|
| 797 |
-
|
|
|
|
|
|
|
|
|
|
| 798 |
|
| 799 |
# with tab2:
|
| 800 |
# if st.button('Clear data', key='reset2'):
|
|
|
|
| 716 |
st.dataframe(projections.head(10))
|
| 717 |
|
| 718 |
if st.session_state['portfolio_loaded'] and projections_file:
|
| 719 |
+
# Ensure portfolio exists, reload from database if needed
|
| 720 |
+
if 'portfolio' not in st.session_state and upload_toggle == 'Paydirt DB' and 'db_portfolio_file' in st.session_state:
|
| 721 |
+
st.session_state['export_portfolio'], st.session_state['portfolio'] = load_file(st.session_state['db_portfolio_file'], site_var, type_var, sport_var, 'portfolio')
|
| 722 |
+
st.session_state['export_portfolio'] = st.session_state['export_portfolio'].dropna(how='all').reset_index(drop=True)
|
| 723 |
+
st.session_state['portfolio'] = st.session_state['portfolio'].dropna(how='all').reset_index(drop=True)
|
| 724 |
+
|
| 725 |
+
# Optimize data types early for memory efficiency
|
| 726 |
+
st.session_state['portfolio'] = optimize_dataframe_dtypes(st.session_state['portfolio'])
|
| 727 |
+
|
| 728 |
+
# Clean player names
|
| 729 |
+
for col in st.session_state['portfolio'].select_dtypes(include=['object', 'category']).columns:
|
| 730 |
+
if st.session_state['portfolio'][col].dtype == 'category':
|
| 731 |
+
st.session_state['portfolio'][col] = st.session_state['portfolio'][col].cat.rename_categories(
|
| 732 |
+
lambda x: player_right_names_mlb.get(x, x) if x in player_wrong_names_mlb else x
|
| 733 |
+
)
|
| 734 |
+
else:
|
| 735 |
+
st.session_state['portfolio'][col] = st.session_state['portfolio'][col].replace(player_wrong_names_mlb)
|
| 736 |
+
|
| 737 |
if st.session_state['portfolio'] is not None and projections is not None:
|
| 738 |
|
| 739 |
st.subheader("Name Matching Analysis")
|
|
|
|
| 811 |
st.session_state['portfolio'].to_parquet(buffer, compression='snappy')
|
| 812 |
st.session_state['origin_portfolio'] = buffer.getvalue()
|
| 813 |
|
| 814 |
+
# Clear large objects from session state to free memory, but preserve db_portfolio_file for reloading
|
| 815 |
+
if 'portfolio' in st.session_state:
|
| 816 |
+
del st.session_state['portfolio']
|
| 817 |
+
if 'export_portfolio' in st.session_state:
|
| 818 |
+
del st.session_state['export_portfolio']
|
| 819 |
|
| 820 |
# with tab2:
|
| 821 |
# if st.button('Clear data', key='reset2'):
|