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 |
|