James McCool
commited on
Commit
·
5763d8f
1
Parent(s):
1d5d805
Refactor player data handling in app.py
Browse files- Moved player selection logic to a new loop for improved clarity and organization, allowing for easier adjustments to player subsets based on contest size.
- Removed redundant code by consolidating player selection into a single section, enhancing maintainability and readability of the code.
- This change streamlines the data processing workflow, ensuring efficient calculations of player exposure percentages.
app.py
CHANGED
|
@@ -102,6 +102,12 @@ with tab2:
|
|
| 102 |
'cpt_own_map': dict(zip(st.session_state['projections_df']['player_names'], st.session_state['projections_df']['captain ownership']))
|
| 103 |
}
|
| 104 |
# Create a copy of the dataframe for calculations
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 105 |
working_df = st.session_state['Contest'].copy()
|
| 106 |
|
| 107 |
with col1:
|
|
@@ -226,12 +232,6 @@ with tab2:
|
|
| 226 |
hide_index=True
|
| 227 |
)
|
| 228 |
|
| 229 |
-
for col in player_columns:
|
| 230 |
-
contest_players = working_df.copy()
|
| 231 |
-
players_1per = working_df.head(int(len(working_df) * 0.01))
|
| 232 |
-
players_5per = working_df.head(int(len(working_df) * 0.05))
|
| 233 |
-
players_10per = working_df.head(int(len(working_df) * 0.10))
|
| 234 |
-
players_20per = working_df.head(int(len(working_df) * 0.20))
|
| 235 |
player_counts = pd.Series(list(contest_players[player_columns].values.flatten())).value_counts()
|
| 236 |
player_1per_counts = pd.Series(list(players_1per[player_columns].values.flatten())).value_counts()
|
| 237 |
player_5per_counts = pd.Series(list(players_5per[player_columns].values.flatten())).value_counts()
|
|
@@ -255,7 +255,6 @@ with tab2:
|
|
| 255 |
player_count_var = 0
|
| 256 |
for each_set in [player_counts, player_1per_counts, player_5per_counts, player_10per_counts, player20_per_counts]:
|
| 257 |
set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Player', 'count': 'Count'})
|
| 258 |
-
st.write(len(each_frame_set[player_count_var]))
|
| 259 |
set_frame['Percent'] = set_frame['Count'] / len(each_frame_set[player_count_var])
|
| 260 |
set_frame = set_frame[['Player', 'Percent']]
|
| 261 |
set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[player_count_var]}'})
|
|
@@ -273,7 +272,6 @@ with tab2:
|
|
| 273 |
stack_count_var = 0
|
| 274 |
for each_set in [stack_counts, stack_1per_counts, stack_5per_counts, stack_10per_counts, stack_20per_counts]:
|
| 275 |
set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Stack', 'count': 'Count'})
|
| 276 |
-
st.write(len(each_frame_set[stack_count_var]))
|
| 277 |
set_frame['Percent'] = set_frame['Count'] / len(each_frame_set[stack_count_var])
|
| 278 |
set_frame = set_frame[['Stack', 'Percent']]
|
| 279 |
set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[stack_count_var]}'})
|
|
|
|
| 102 |
'cpt_own_map': dict(zip(st.session_state['projections_df']['player_names'], st.session_state['projections_df']['captain ownership']))
|
| 103 |
}
|
| 104 |
# Create a copy of the dataframe for calculations
|
| 105 |
+
for col in player_columns:
|
| 106 |
+
contest_players = st.session_state['Contest'].copy()
|
| 107 |
+
players_1per = st.session_state['Contest'].head(int(len(st.session_state['Contest']) * 0.01))
|
| 108 |
+
players_5per = st.session_state['Contest'].head(int(len(st.session_state['Contest']) * 0.05))
|
| 109 |
+
players_10per = st.session_state['Contest'].head(int(len(st.session_state['Contest']) * 0.10))
|
| 110 |
+
players_20per = st.session_state['Contest'].head(int(len(st.session_state['Contest']) * 0.20))
|
| 111 |
working_df = st.session_state['Contest'].copy()
|
| 112 |
|
| 113 |
with col1:
|
|
|
|
| 232 |
hide_index=True
|
| 233 |
)
|
| 234 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 235 |
player_counts = pd.Series(list(contest_players[player_columns].values.flatten())).value_counts()
|
| 236 |
player_1per_counts = pd.Series(list(players_1per[player_columns].values.flatten())).value_counts()
|
| 237 |
player_5per_counts = pd.Series(list(players_5per[player_columns].values.flatten())).value_counts()
|
|
|
|
| 255 |
player_count_var = 0
|
| 256 |
for each_set in [player_counts, player_1per_counts, player_5per_counts, player_10per_counts, player20_per_counts]:
|
| 257 |
set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Player', 'count': 'Count'})
|
|
|
|
| 258 |
set_frame['Percent'] = set_frame['Count'] / len(each_frame_set[player_count_var])
|
| 259 |
set_frame = set_frame[['Player', 'Percent']]
|
| 260 |
set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[player_count_var]}'})
|
|
|
|
| 272 |
stack_count_var = 0
|
| 273 |
for each_set in [stack_counts, stack_1per_counts, stack_5per_counts, stack_10per_counts, stack_20per_counts]:
|
| 274 |
set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Stack', 'count': 'Count'})
|
|
|
|
| 275 |
set_frame['Percent'] = set_frame['Count'] / len(each_frame_set[stack_count_var])
|
| 276 |
set_frame = set_frame[['Stack', 'Percent']]
|
| 277 |
set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[stack_count_var]}'})
|