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'])
|