James McCool
commited on
Commit
·
cc619fc
1
Parent(s):
8587197
adding ability to recalculate stacks and sizes
Browse files
app.py
CHANGED
|
@@ -1109,6 +1109,24 @@ def parse_portfolio_on_mapped(portfolio, map_dict, map_key, filter_keys_pos, fil
|
|
| 1109 |
|
| 1110 |
return portfolio[mask]
|
| 1111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1112 |
with st.container():
|
| 1113 |
|
| 1114 |
col1, col2, col3, col4 = st.columns([1, 4, 4, 4])
|
|
@@ -1929,7 +1947,7 @@ if selected_tab == 'Manage Portfolio':
|
|
| 1929 |
st.session_state['base_frame_names'] = {}
|
| 1930 |
if 'origin_portfolio' in st.session_state and 'projections_df' in st.session_state:
|
| 1931 |
with st.container():
|
| 1932 |
-
reset_port_col, recalc_div_col, set_base_col, blank_reset_col, contest_size_col = st.columns([.15, .15, .15, .35, .30])
|
| 1933 |
with reset_port_col:
|
| 1934 |
with st.popover("Reset Portfolio"):
|
| 1935 |
st.markdown("choose a base to reset to:")
|
|
@@ -1940,6 +1958,10 @@ if selected_tab == 'Manage Portfolio':
|
|
| 1940 |
st.rerun()
|
| 1941 |
else:
|
| 1942 |
st.info("No saved base frames available")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1943 |
with recalc_div_col:
|
| 1944 |
if st.button("Recalculate Diversity"):
|
| 1945 |
st.session_state['working_frame']['Diversity'] = recalc_diversity(st.session_state['display_frame'], st.session_state['player_columns'])
|
|
|
|
| 1109 |
|
| 1110 |
return portfolio[mask]
|
| 1111 |
|
| 1112 |
+
def recalc_stacks_sizes(df, player_columns, map_dict):
|
| 1113 |
+
team_map = map_dict['team_map'] # Use this directly (player_name -> team)
|
| 1114 |
+
df['Stack'] = df.apply(
|
| 1115 |
+
lambda row: Counter(
|
| 1116 |
+
team_map.get(player, '') for player in row[stack_column_dict[site_var][type_var][sport_var]]
|
| 1117 |
+
if team_map.get(player, '') != ''
|
| 1118 |
+
).most_common(1)[0][0] if any(team_map.get(player, '') for player in row[stack_column_dict[site_var][type_var][sport_var]]) else '',
|
| 1119 |
+
axis=1
|
| 1120 |
+
)
|
| 1121 |
+
df['Size'] = df.apply(
|
| 1122 |
+
lambda row: Counter(
|
| 1123 |
+
team_map.get(player, '') for player in row[stack_column_dict[site_var][type_var][sport_var]]
|
| 1124 |
+
if team_map.get(player, '') != ''
|
| 1125 |
+
).most_common(1)[0][1] if any(team_map.get(player, '') for player in row[stack_column_dict[site_var][type_var][sport_var]]) else 0,
|
| 1126 |
+
axis=1
|
| 1127 |
+
)
|
| 1128 |
+
return df
|
| 1129 |
+
|
| 1130 |
with st.container():
|
| 1131 |
|
| 1132 |
col1, col2, col3, col4 = st.columns([1, 4, 4, 4])
|
|
|
|
| 1947 |
st.session_state['base_frame_names'] = {}
|
| 1948 |
if 'origin_portfolio' in st.session_state and 'projections_df' in st.session_state:
|
| 1949 |
with st.container():
|
| 1950 |
+
reset_port_col, recalc_stacks_col, recalc_div_col, set_base_col, blank_reset_col, contest_size_col = st.columns([.15, .15, .15, .15, .35, .30])
|
| 1951 |
with reset_port_col:
|
| 1952 |
with st.popover("Reset Portfolio"):
|
| 1953 |
st.markdown("choose a base to reset to:")
|
|
|
|
| 1958 |
st.rerun()
|
| 1959 |
else:
|
| 1960 |
st.info("No saved base frames available")
|
| 1961 |
+
with recalc_stacks_col:
|
| 1962 |
+
if st.button("Recalculate Stacks and Sizes"):
|
| 1963 |
+
st.session_state['working_frame'] = recalc_stacks_sizes(st.session_state['working_frame'], st.session_state['player_columns'], st.session_state['map_dict'])
|
| 1964 |
+
st.rerun()
|
| 1965 |
with recalc_div_col:
|
| 1966 |
if st.button("Recalculate Diversity"):
|
| 1967 |
st.session_state['working_frame']['Diversity'] = recalc_diversity(st.session_state['display_frame'], st.session_state['player_columns'])
|