James McCool
commited on
Commit
·
56e1d7b
1
Parent(s):
661b320
Refactor player subset calculations in app.py
Browse files- Updated the logic for calculating player subsets based on percentile finishes, replacing head-based selection with conditional filtering for improved accuracy.
- Adjusted the calculation of lengths for each player subset to directly reference the newly defined subsets, enhancing clarity and reliability in metrics computation.
app.py
CHANGED
|
@@ -231,15 +231,15 @@ with tab2:
|
|
| 231 |
)
|
| 232 |
|
| 233 |
contest_players = working_df.copy()
|
| 234 |
-
players_1per = working_df
|
| 235 |
-
players_5per = working_df
|
| 236 |
-
players_10per = working_df
|
| 237 |
-
players_20per = working_df
|
| 238 |
contest_len = len(contest_players)
|
| 239 |
-
len_1per = len(
|
| 240 |
-
len_5per = len(
|
| 241 |
-
len_10per = len(
|
| 242 |
-
len_20per = len(
|
| 243 |
######## Going to try a groupby based on finishing percentiles here next
|
| 244 |
player_counts = pd.Series(list(contest_players[player_columns].values.flatten())).value_counts()
|
| 245 |
player_1per_counts = pd.Series(list(players_1per[player_columns].values.flatten())).value_counts()
|
|
@@ -265,7 +265,6 @@ with tab2:
|
|
| 265 |
player_count_var = 0
|
| 266 |
for each_set in [player_counts, player_1per_counts, player_5per_counts, player_10per_counts, player20_per_counts]:
|
| 267 |
set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Player', 'count': 'Count'})
|
| 268 |
-
st.write(each_len_set[player_count_var])
|
| 269 |
set_frame['Percent'] = set_frame['Count'] / each_len_set[player_count_var]
|
| 270 |
set_frame = set_frame[['Player', 'Percent']]
|
| 271 |
set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[player_count_var]}'})
|
|
@@ -283,7 +282,6 @@ with tab2:
|
|
| 283 |
stack_count_var = 0
|
| 284 |
for each_set in [stack_counts, stack_1per_counts, stack_5per_counts, stack_10per_counts, stack_20per_counts]:
|
| 285 |
set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Stack', 'count': 'Count'})
|
| 286 |
-
st.write(each_len_set[stack_count_var])
|
| 287 |
set_frame['Percent'] = set_frame['Count'] / each_len_set[stack_count_var]
|
| 288 |
set_frame = set_frame[['Stack', 'Percent']]
|
| 289 |
set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[stack_count_var]}'})
|
|
|
|
| 231 |
)
|
| 232 |
|
| 233 |
contest_players = working_df.copy()
|
| 234 |
+
players_1per = working_df[working_df['percentile_finish'] <= 0.01]
|
| 235 |
+
players_5per = working_df[working_df['percentile_finish'] <= 0.05]
|
| 236 |
+
players_10per = working_df[working_df['percentile_finish'] <= 0.10]
|
| 237 |
+
players_20per = working_df[working_df['percentile_finish'] <= 0.20]
|
| 238 |
contest_len = len(contest_players)
|
| 239 |
+
len_1per = len(players_1per)
|
| 240 |
+
len_5per = len(players_5per)
|
| 241 |
+
len_10per = len(players_10per)
|
| 242 |
+
len_20per = len(players_20per)
|
| 243 |
######## Going to try a groupby based on finishing percentiles here next
|
| 244 |
player_counts = pd.Series(list(contest_players[player_columns].values.flatten())).value_counts()
|
| 245 |
player_1per_counts = pd.Series(list(players_1per[player_columns].values.flatten())).value_counts()
|
|
|
|
| 265 |
player_count_var = 0
|
| 266 |
for each_set in [player_counts, player_1per_counts, player_5per_counts, player_10per_counts, player20_per_counts]:
|
| 267 |
set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Player', 'count': 'Count'})
|
|
|
|
| 268 |
set_frame['Percent'] = set_frame['Count'] / each_len_set[player_count_var]
|
| 269 |
set_frame = set_frame[['Player', 'Percent']]
|
| 270 |
set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[player_count_var]}'})
|
|
|
|
| 282 |
stack_count_var = 0
|
| 283 |
for each_set in [stack_counts, stack_1per_counts, stack_5per_counts, stack_10per_counts, stack_20per_counts]:
|
| 284 |
set_frame = each_set.to_frame().reset_index().rename(columns={'index': 'Stack', 'count': 'Count'})
|
|
|
|
| 285 |
set_frame['Percent'] = set_frame['Count'] / each_len_set[stack_count_var]
|
| 286 |
set_frame = set_frame[['Stack', 'Percent']]
|
| 287 |
set_frame = set_frame.rename(columns={'Percent': f'Exposure {each_set_name[stack_count_var]}'})
|