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.

Files changed (1) hide show
  1. app.py +28 -0
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