James McCool
commited on
Commit
·
f56fa41
1
Parent(s):
3dc6731
Add Showdown contest type handling in app.py for enhanced player data processing
Browse files- Implemented logic to calculate stack, stack size, salary, actual fantasy points, and ownership for 'Showdown' contest type in working_df.
- Enhanced data organization by introducing new columns and resetting the index for better clarity in player exposure data.
- Maintained existing functionality while improving the handling of player data specific to the Showdown format.
app.py
CHANGED
|
@@ -188,6 +188,34 @@ with tab2:
|
|
| 188 |
working_df['percentile_finish'] = working_df['index'].rank(pct=True)
|
| 189 |
working_df['finish'] = working_df['index']
|
| 190 |
working_df = working_df.drop(['sorted', 'index'], axis=1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 191 |
st.session_state['field_player_frame'] = create_player_exposures(working_df, player_columns)
|
| 192 |
st.session_state['field_stack_frame'] = create_stack_exposures(working_df)
|
| 193 |
|
|
|
|
| 188 |
working_df['percentile_finish'] = working_df['index'].rank(pct=True)
|
| 189 |
working_df['finish'] = working_df['index']
|
| 190 |
working_df = working_df.drop(['sorted', 'index'], axis=1)
|
| 191 |
+
|
| 192 |
+
elif type_var == 'Showdown':
|
| 193 |
+
working_df['stack'] = working_df.apply(
|
| 194 |
+
lambda row: Counter(
|
| 195 |
+
map_dict['team_map'].get(player, '') for player in row[2:]
|
| 196 |
+
if map_dict['team_map'].get(player, '') != ''
|
| 197 |
+
).most_common(1)[0][0] if any(map_dict['team_map'].get(player, '') for player in row[2:]) else '',
|
| 198 |
+
axis=1
|
| 199 |
+
)
|
| 200 |
+
working_df['stack_size'] = working_df.apply(
|
| 201 |
+
lambda row: Counter(
|
| 202 |
+
map_dict['team_map'].get(player, '') for player in row[2:]
|
| 203 |
+
if map_dict['team_map'].get(player, '') != ''
|
| 204 |
+
).most_common(1)[0][1] if any(map_dict['team_map'].get(player, '') for player in row[2:]) else '',
|
| 205 |
+
axis=1
|
| 206 |
+
)
|
| 207 |
+
working_df['salary'] = working_df.apply(lambda row: sum(map_dict['salary_map'].get(player, 0) for player in row), axis=1)
|
| 208 |
+
working_df['actual_fpts'] = working_df.apply(lambda row: sum(st.session_state['actual_dict'].get(player, 0) for player in row), axis=1)
|
| 209 |
+
working_df['actual_own'] = working_df.apply(lambda row: sum(st.session_state['ownership_dict'].get(player, 0) for player in row), axis=1)
|
| 210 |
+
working_df['sorted'] = working_df[player_columns].apply(
|
| 211 |
+
lambda row: ','.join(sorted(row.values)),
|
| 212 |
+
axis=1
|
| 213 |
+
)
|
| 214 |
+
working_df['dupes'] = working_df.groupby('sorted').transform('size')
|
| 215 |
+
working_df = working_df.reset_index()
|
| 216 |
+
working_df['percentile_finish'] = working_df['index'].rank(pct=True)
|
| 217 |
+
working_df['finish'] = working_df['index']
|
| 218 |
+
working_df = working_df.drop(['sorted', 'index'], axis=1)
|
| 219 |
st.session_state['field_player_frame'] = create_player_exposures(working_df, player_columns)
|
| 220 |
st.session_state['field_stack_frame'] = create_stack_exposures(working_df)
|
| 221 |
|