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
Files changed (1) hide show
  1. app.py +33 -32
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
- 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) +
@@ -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
- st.session_state['export_base'] = pd.DataFrame(columns=st.session_state['portfolio'].columns)
 
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'])