James McCool
commited on
Commit
·
0ecb4fa
1
Parent(s):
dbbaaf8
Refactor portfolio file loading logic to ensure proper handling of uploaded files and optimize data types for memory efficiency
Browse files
app.py
CHANGED
|
@@ -859,54 +859,55 @@ if selected_tab == 'Data Load':
|
|
| 859 |
|
| 860 |
if 'portfolio' not in st.session_state:
|
| 861 |
if st.session_state['portfolio_loaded']:
|
| 862 |
-
if
|
| 863 |
-
|
| 864 |
-
|
| 865 |
-
|
| 866 |
-
|
|
|
|
| 867 |
|
| 868 |
-
|
| 869 |
-
|
| 870 |
|
| 871 |
-
|
| 872 |
-
|
| 873 |
-
|
| 874 |
-
|
| 875 |
|
| 876 |
-
|
| 877 |
-
|
| 878 |
|
| 879 |
-
|
| 880 |
-
|
| 881 |
-
|
| 882 |
-
|
| 883 |
|
| 884 |
-
|
| 885 |
-
|
| 886 |
|
| 887 |
-
|
| 888 |
-
|
| 889 |
-
|
| 890 |
-
|
| 891 |
|
| 892 |
-
|
| 893 |
-
|
| 894 |
-
|
| 895 |
|
| 896 |
-
|
| 897 |
-
|
| 898 |
-
|
| 899 |
-
|
| 900 |
-
|
| 901 |
-
|
| 902 |
-
|
| 903 |
-
|
| 904 |
-
|
| 905 |
-
|
| 906 |
-
|
| 907 |
-
|
| 908 |
-
|
| 909 |
-
|
| 910 |
|
| 911 |
with col3:
|
| 912 |
st.subheader("Projections File")
|
|
|
|
| 859 |
|
| 860 |
if 'portfolio' not in st.session_state:
|
| 861 |
if st.session_state['portfolio_loaded']:
|
| 862 |
+
if portfolio_file is not None:
|
| 863 |
+
if upload_toggle == 'Paydirt DB':
|
| 864 |
+
portfolio_file = st.session_state['db_portfolio_file']
|
| 865 |
+
st.session_state['export_portfolio'], st.session_state['portfolio'] = load_file(portfolio_file, site_var, type_var, sport_var, 'portfolio')
|
| 866 |
+
st.session_state['export_portfolio'] = st.session_state['export_portfolio'].dropna(how='all')
|
| 867 |
+
st.session_state['export_portfolio'] = st.session_state['export_portfolio'].reset_index(drop=True)
|
| 868 |
|
| 869 |
+
st.session_state['portfolio'] = st.session_state['portfolio'].dropna(how='all')
|
| 870 |
+
st.session_state['portfolio'] = st.session_state['portfolio'].reset_index(drop=True)
|
| 871 |
|
| 872 |
+
elif upload_toggle == 'SaberSim (Just IDs)':
|
| 873 |
+
st.session_state['export_portfolio'], st.session_state['portfolio'] = load_ss_file(portfolio_file, st.session_state['csv_file'], site_var, type_var, sport_var)
|
| 874 |
+
st.session_state['export_portfolio'] = st.session_state['export_portfolio'].dropna(how='all')
|
| 875 |
+
st.session_state['export_portfolio'] = st.session_state['export_portfolio'].reset_index(drop=True)
|
| 876 |
|
| 877 |
+
st.session_state['portfolio'] = st.session_state['portfolio'].dropna(how='all')
|
| 878 |
+
st.session_state['portfolio'] = st.session_state['portfolio'].reset_index(drop=True)
|
| 879 |
|
| 880 |
+
elif upload_toggle == 'Draftkings/Fanduel (Names + IDs)':
|
| 881 |
+
st.session_state['export_portfolio'], st.session_state['portfolio'] = load_dk_fd_file(portfolio_file, st.session_state['csv_file'], site_var, type_var, sport_var)
|
| 882 |
+
st.session_state['export_portfolio'] = st.session_state['export_portfolio'].dropna(how='all')
|
| 883 |
+
st.session_state['export_portfolio'] = st.session_state['export_portfolio'].reset_index(drop=True)
|
| 884 |
|
| 885 |
+
st.session_state['portfolio'] = st.session_state['portfolio'].dropna(how='all')
|
| 886 |
+
st.session_state['portfolio'] = st.session_state['portfolio'].reset_index(drop=True)
|
| 887 |
|
| 888 |
+
else:
|
| 889 |
+
st.session_state['export_portfolio'], st.session_state['portfolio'] = load_file(portfolio_file, site_var, type_var, sport_var, 'portfolio')
|
| 890 |
+
st.session_state['export_portfolio'] = st.session_state['export_portfolio'].dropna(how='all')
|
| 891 |
+
st.session_state['export_portfolio'] = st.session_state['export_portfolio'].reset_index(drop=True)
|
| 892 |
|
| 893 |
+
st.session_state['portfolio'] = st.session_state['portfolio'].dropna(how='all')
|
| 894 |
+
st.session_state['portfolio'] = st.session_state['portfolio'].reset_index(drop=True)
|
| 895 |
+
if st.session_state['portfolio'] is not None:
|
| 896 |
|
| 897 |
+
# Optimize data types early for memory efficiency
|
| 898 |
+
st.session_state['portfolio'] = optimize_dataframe_dtypes(st.session_state['portfolio'])
|
| 899 |
+
|
| 900 |
+
st.success('Portfolio file loaded successfully!')
|
| 901 |
+
for col in st.session_state['portfolio'].select_dtypes(include=['object', 'category']).columns:
|
| 902 |
+
if st.session_state['portfolio'][col].dtype == 'category':
|
| 903 |
+
# Handle categorical columns
|
| 904 |
+
st.session_state['portfolio'][col] = st.session_state['portfolio'][col].cat.rename_categories(
|
| 905 |
+
lambda x: player_right_names_mlb.get(x, x) if x in player_wrong_names_mlb else x
|
| 906 |
+
)
|
| 907 |
+
else:
|
| 908 |
+
# Handle object columns
|
| 909 |
+
st.session_state['portfolio'][col] = st.session_state['portfolio'][col].replace(player_wrong_names_mlb)
|
| 910 |
+
st.dataframe(st.session_state['portfolio'].head(10))
|
| 911 |
|
| 912 |
with col3:
|
| 913 |
st.subheader("Projections File")
|