James McCool commited on
Commit
e16cb76
·
1 Parent(s): 2a79e13

Refactor portfolio calculation logic in app.py: streamline salary, median, and ownership computations for Classic and Showdown types, ensuring accurate data handling and improved clarity in the code structure.

Browse files
Files changed (1) hide show
  1. app.py +30 -31
app.py CHANGED
@@ -830,37 +830,8 @@ 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
- 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,6 +852,34 @@ with tab2:
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:
 
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 type_var == 'Classic':
834
+ if sport_var == 'CS2':
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
835
  # Calculate salary (CPT uses cpt_salary_map, others use salary_map)
836
  st.session_state['portfolio']['salary'] = st.session_state['portfolio'].apply(
837
  lambda row: map_dict['cpt_salary_map'].get(row.iloc[0], 0) +
 
852
  sum(map_dict['own_map'].get(player, 0) for player in row.iloc[1:]),
853
  axis=1
854
  )
855
+
856
+ elif sport_var != 'CS2':
857
+ 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)
858
+ 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)
859
+ 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)
860
+ if stack_dict is not None:
861
+ st.session_state['portfolio']['Stack'] = st.session_state['portfolio'].index.map(stack_dict)
862
+ elif type_var == 'Showdown':
863
+ # Calculate salary (CPT uses cpt_salary_map, others use salary_map)
864
+ st.session_state['portfolio']['salary'] = st.session_state['portfolio'].apply(
865
+ lambda row: map_dict['cpt_salary_map'].get(row.iloc[0], 0) +
866
+ sum(map_dict['salary_map'].get(player, 0) for player in row.iloc[1:]),
867
+ axis=1
868
+ )
869
+
870
+ # Calculate median (CPT uses cpt_proj_map, others use proj_map)
871
+ st.session_state['portfolio']['median'] = st.session_state['portfolio'].apply(
872
+ lambda row: map_dict['cpt_proj_map'].get(row.iloc[0], 0) +
873
+ sum(map_dict['proj_map'].get(player, 0) for player in row.iloc[1:]),
874
+ axis=1
875
+ )
876
+
877
+ # Calculate ownership (CPT uses cpt_own_map, others use own_map)
878
+ st.session_state['portfolio']['Own'] = st.session_state['portfolio'].apply(
879
+ lambda row: map_dict['cpt_own_map'].get(row.iloc[0], 0) +
880
+ sum(map_dict['own_map'].get(player, 0) for player in row.iloc[1:]),
881
+ axis=1
882
+ )
883
  col1, col2 = st.columns([2, 8])
884
  with col1:
885
  if 'trimming_dict_maxes' not in st.session_state: