James McCool
commited on
Commit
·
2a79e13
1
Parent(s):
5a791bd
Enhance portfolio calculations in app.py: implement conditional logic for salary, median, and ownership calculations based on portfolio type and sport, ensuring accurate data handling for both Classic and Showdown formats.
Browse files
app.py
CHANGED
|
@@ -830,9 +830,37 @@ with tab2:
|
|
| 830 |
'cpt_proj_map':dict(zip(st.session_state['projections_df']['player_names'], st.session_state['projections_df']['median'] * 1.5)),
|
| 831 |
'cpt_own_map':dict(zip(st.session_state['projections_df']['player_names'], st.session_state['projections_df']['captain ownership']))
|
| 832 |
}
|
| 833 |
-
|
| 834 |
-
|
| 835 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 836 |
# Calculate salary (CPT uses cpt_salary_map, others use salary_map)
|
| 837 |
st.session_state['portfolio']['salary'] = st.session_state['portfolio'].apply(
|
| 838 |
lambda row: map_dict['cpt_salary_map'].get(row.iloc[0], 0) +
|
|
@@ -853,34 +881,6 @@ with tab2:
|
|
| 853 |
sum(map_dict['own_map'].get(player, 0) for player in row.iloc[1:]),
|
| 854 |
axis=1
|
| 855 |
)
|
| 856 |
-
|
| 857 |
-
elif sport_var != 'CS2':
|
| 858 |
-
st.session_state['portfolio']['salary'] = st.session_state['portfolio'].apply(lambda row: sum(map_dict['salary_map'].get(player, 0) for player in row), axis=1)
|
| 859 |
-
st.session_state['portfolio']['median'] = st.session_state['portfolio'].apply(lambda row: sum(map_dict['proj_map'].get(player, 0) for player in row), axis=1)
|
| 860 |
-
st.session_state['portfolio']['Own'] = st.session_state['portfolio'].apply(lambda row: sum(map_dict['own_map'].get(player, 0) for player in row), axis=1)
|
| 861 |
-
if stack_dict is not None:
|
| 862 |
-
st.session_state['portfolio']['Stack'] = st.session_state['portfolio'].index.map(stack_dict)
|
| 863 |
-
elif type_var == 'Showdown':
|
| 864 |
-
# Calculate salary (CPT uses cpt_salary_map, others use salary_map)
|
| 865 |
-
st.session_state['portfolio']['salary'] = st.session_state['portfolio'].apply(
|
| 866 |
-
lambda row: map_dict['cpt_salary_map'].get(row.iloc[0], 0) +
|
| 867 |
-
sum(map_dict['salary_map'].get(player, 0) for player in row.iloc[1:]),
|
| 868 |
-
axis=1
|
| 869 |
-
)
|
| 870 |
-
|
| 871 |
-
# Calculate median (CPT uses cpt_proj_map, others use proj_map)
|
| 872 |
-
st.session_state['portfolio']['median'] = st.session_state['portfolio'].apply(
|
| 873 |
-
lambda row: map_dict['cpt_proj_map'].get(row.iloc[0], 0) +
|
| 874 |
-
sum(map_dict['proj_map'].get(player, 0) for player in row.iloc[1:]),
|
| 875 |
-
axis=1
|
| 876 |
-
)
|
| 877 |
-
|
| 878 |
-
# Calculate ownership (CPT uses cpt_own_map, others use own_map)
|
| 879 |
-
st.session_state['portfolio']['Own'] = st.session_state['portfolio'].apply(
|
| 880 |
-
lambda row: map_dict['cpt_own_map'].get(row.iloc[0], 0) +
|
| 881 |
-
sum(map_dict['own_map'].get(player, 0) for player in row.iloc[1:]),
|
| 882 |
-
axis=1
|
| 883 |
-
)
|
| 884 |
col1, col2 = st.columns([2, 8])
|
| 885 |
with col1:
|
| 886 |
if 'trimming_dict_maxes' not in st.session_state:
|
|
@@ -1095,7 +1095,8 @@ with tab2:
|
|
| 1095 |
st.write('Export portfolio updated!')
|
| 1096 |
else:
|
| 1097 |
st.session_state['export_file'] = st.session_state['portfolio'].copy()
|
| 1098 |
-
|
|
|
|
| 1099 |
for col in st.session_state['export_file'].columns:
|
| 1100 |
if col not in excluded_cols:
|
| 1101 |
st.session_state['export_file'][col] = st.session_state['export_file'][col].map(st.session_state['export_dict'])
|
|
|
|
| 830 |
'cpt_proj_map':dict(zip(st.session_state['projections_df']['player_names'], st.session_state['projections_df']['median'] * 1.5)),
|
| 831 |
'cpt_own_map':dict(zip(st.session_state['projections_df']['player_names'], st.session_state['projections_df']['captain ownership']))
|
| 832 |
}
|
| 833 |
+
if 'portfolio' not in st.session_state:
|
| 834 |
+
if type_var == 'Classic':
|
| 835 |
+
if sport_var == 'CS2':
|
| 836 |
+
# Calculate salary (CPT uses cpt_salary_map, others use salary_map)
|
| 837 |
+
st.session_state['portfolio']['salary'] = st.session_state['portfolio'].apply(
|
| 838 |
+
lambda row: map_dict['cpt_salary_map'].get(row.iloc[0], 0) +
|
| 839 |
+
sum(map_dict['salary_map'].get(player, 0) for player in row.iloc[1:]),
|
| 840 |
+
axis=1
|
| 841 |
+
)
|
| 842 |
+
|
| 843 |
+
# Calculate median (CPT uses cpt_proj_map, others use proj_map)
|
| 844 |
+
st.session_state['portfolio']['median'] = st.session_state['portfolio'].apply(
|
| 845 |
+
lambda row: map_dict['cpt_proj_map'].get(row.iloc[0], 0) +
|
| 846 |
+
sum(map_dict['proj_map'].get(player, 0) for player in row.iloc[1:]),
|
| 847 |
+
axis=1
|
| 848 |
+
)
|
| 849 |
+
|
| 850 |
+
# Calculate ownership (CPT uses cpt_own_map, others use own_map)
|
| 851 |
+
st.session_state['portfolio']['Own'] = st.session_state['portfolio'].apply(
|
| 852 |
+
lambda row: map_dict['cpt_own_map'].get(row.iloc[0], 0) +
|
| 853 |
+
sum(map_dict['own_map'].get(player, 0) for player in row.iloc[1:]),
|
| 854 |
+
axis=1
|
| 855 |
+
)
|
| 856 |
+
|
| 857 |
+
elif sport_var != 'CS2':
|
| 858 |
+
st.session_state['portfolio']['salary'] = st.session_state['portfolio'].apply(lambda row: sum(map_dict['salary_map'].get(player, 0) for player in row), axis=1)
|
| 859 |
+
st.session_state['portfolio']['median'] = st.session_state['portfolio'].apply(lambda row: sum(map_dict['proj_map'].get(player, 0) for player in row), axis=1)
|
| 860 |
+
st.session_state['portfolio']['Own'] = st.session_state['portfolio'].apply(lambda row: sum(map_dict['own_map'].get(player, 0) for player in row), axis=1)
|
| 861 |
+
if stack_dict is not None:
|
| 862 |
+
st.session_state['portfolio']['Stack'] = st.session_state['portfolio'].index.map(stack_dict)
|
| 863 |
+
elif type_var == 'Showdown':
|
| 864 |
# Calculate salary (CPT uses cpt_salary_map, others use salary_map)
|
| 865 |
st.session_state['portfolio']['salary'] = st.session_state['portfolio'].apply(
|
| 866 |
lambda row: map_dict['cpt_salary_map'].get(row.iloc[0], 0) +
|
|
|
|
| 881 |
sum(map_dict['own_map'].get(player, 0) for player in row.iloc[1:]),
|
| 882 |
axis=1
|
| 883 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 884 |
col1, col2 = st.columns([2, 8])
|
| 885 |
with col1:
|
| 886 |
if 'trimming_dict_maxes' not in st.session_state:
|
|
|
|
| 1095 |
st.write('Export portfolio updated!')
|
| 1096 |
else:
|
| 1097 |
st.session_state['export_file'] = st.session_state['portfolio'].copy()
|
| 1098 |
+
if 'export_base' not in st.session_state:
|
| 1099 |
+
st.session_state['export_base'] = pd.DataFrame(columns=st.session_state['portfolio'].columns)
|
| 1100 |
for col in st.session_state['export_file'].columns:
|
| 1101 |
if col not in excluded_cols:
|
| 1102 |
st.session_state['export_file'][col] = st.session_state['export_file'][col].map(st.session_state['export_dict'])
|