James McCool commited on
Commit
560df46
·
1 Parent(s): 9ffa1eb

Refine data processing in app.py by filtering for 'Main Slate' and 'overall' versions, and enhance data export functionality with player ID mapping for DraftKings and FanDuel. Improved session state handling for working seeds.

Browse files
Files changed (1) hide show
  1. app.py +22 -0
app.py CHANGED
@@ -108,6 +108,8 @@ def init_baselines():
108
  cursor = collection.find()
109
 
110
  raw_display = pd.DataFrame(list(cursor))
 
 
111
  dk_raw = raw_display[['Player', 'Position', 'Team', 'Opp', 'Salary', 'Floor', 'Median', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '20+%', '2x%', '3x%', '4x%',
112
  'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
113
  dk_raw['STDev'] = (dk_raw['Ceiling'] - dk_raw['Floor']) / 4
@@ -116,6 +118,8 @@ def init_baselines():
116
  cursor = collection.find()
117
 
118
  raw_display = pd.DataFrame(list(cursor))
 
 
119
  fd_raw = raw_display[['Player', 'Position', 'Team', 'Opp', 'Salary', 'Floor', 'Median', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '20+%', '2x%', '3x%', '4x%',
120
  'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
121
  fd_raw['STDev'] = (fd_raw['Ceiling'] - fd_raw['Floor']) / 4
@@ -174,6 +178,8 @@ def sim_contest(Sim_size, seed_frame, maps_dict, sharp_split, Contest_Size):
174
  return Sim_Winners
175
 
176
  dk_raw, fd_raw = init_baselines()
 
 
177
 
178
  tab1, tab2 = st.tabs(['Contest Sims', 'Data Export'])
179
  with tab2:
@@ -186,6 +192,8 @@ with tab2:
186
  DK_seed = init_DK_seed_frames()
187
  FD_seed = init_FD_seed_frames()
188
  dk_raw, fd_raw = init_baselines()
 
 
189
 
190
  slate_var1 = st.radio("Which data are you loading?", ('Main Slate', 'Secondary Slate'))
191
  site_var1 = st.radio("What site are you working with?", ('Draftkings', 'Fanduel'))
@@ -233,7 +241,16 @@ with tab2:
233
 
234
 
235
  if st.button("Prepare data export", key='data_export'):
 
 
 
 
 
 
 
236
  data_export = st.session_state.working_seed.copy()
 
 
237
  st.download_button(
238
  label="Export optimals set",
239
  data=convert_df(data_export),
@@ -279,6 +296,9 @@ with tab1:
279
  DK_seed = init_DK_seed_frames()
280
  FD_seed = init_FD_seed_frames()
281
  dk_raw, fd_raw = init_baselines()
 
 
 
282
  sim_slate_var1 = st.radio("Which data are you loading?", ('Main Slate', 'Secondary Slate'), key='sim_slate_var1')
283
  sim_site_var1 = st.radio("What site are you working with?", ('Draftkings', 'Fanduel'), key='sim_site_var1')
284
  if sim_site_var1 == 'Draftkings':
@@ -390,6 +410,8 @@ with tab1:
390
 
391
  # Data Copying
392
  st.session_state.Sim_Winner_Export = Sim_Winner_Frame.copy()
 
 
393
 
394
  # Data Copying
395
  st.session_state.Sim_Winner_Display = Sim_Winner_Frame.copy()
 
108
  cursor = collection.find()
109
 
110
  raw_display = pd.DataFrame(list(cursor))
111
+ raw_display = raw_display[raw_display['slate'] == 'Main Slate']
112
+ raw_display = raw_display[raw_display['version'] == 'overall']
113
  dk_raw = raw_display[['Player', 'Position', 'Team', 'Opp', 'Salary', 'Floor', 'Median', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '20+%', '2x%', '3x%', '4x%',
114
  'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
115
  dk_raw['STDev'] = (dk_raw['Ceiling'] - dk_raw['Floor']) / 4
 
118
  cursor = collection.find()
119
 
120
  raw_display = pd.DataFrame(list(cursor))
121
+ raw_display = raw_display[raw_display['slate'] == 'Main Slate']
122
+ raw_display = raw_display[raw_display['version'] == 'overall']
123
  fd_raw = raw_display[['Player', 'Position', 'Team', 'Opp', 'Salary', 'Floor', 'Median', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '20+%', '2x%', '3x%', '4x%',
124
  'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
125
  fd_raw['STDev'] = (fd_raw['Ceiling'] - fd_raw['Floor']) / 4
 
178
  return Sim_Winners
179
 
180
  dk_raw, fd_raw = init_baselines()
181
+ dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_id))
182
+ fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_id))
183
 
184
  tab1, tab2 = st.tabs(['Contest Sims', 'Data Export'])
185
  with tab2:
 
192
  DK_seed = init_DK_seed_frames()
193
  FD_seed = init_FD_seed_frames()
194
  dk_raw, fd_raw = init_baselines()
195
+ dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_id))
196
+ fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_id))
197
 
198
  slate_var1 = st.radio("Which data are you loading?", ('Main Slate', 'Secondary Slate'))
199
  site_var1 = st.radio("What site are you working with?", ('Draftkings', 'Fanduel'))
 
241
 
242
 
243
  if st.button("Prepare data export", key='data_export'):
244
+ if 'working_seed' in st.session_state:
245
+ st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 11], team_var2)]
246
+ st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 12], stack_var2)]
247
+ elif 'working_seed' not in st.session_state:
248
+ st.session_state.working_seed = DK_seed.copy()
249
+ st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 11], team_var2)]
250
+ st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 12], stack_var2)]
251
  data_export = st.session_state.working_seed.copy()
252
+ for col in range(9):
253
+ data_export[:, col] = np.array([dk_id_dict.get(x, x) for x in data_export[:, col]])
254
  st.download_button(
255
  label="Export optimals set",
256
  data=convert_df(data_export),
 
296
  DK_seed = init_DK_seed_frames()
297
  FD_seed = init_FD_seed_frames()
298
  dk_raw, fd_raw = init_baselines()
299
+ dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_id))
300
+ fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_id))
301
+
302
  sim_slate_var1 = st.radio("Which data are you loading?", ('Main Slate', 'Secondary Slate'), key='sim_slate_var1')
303
  sim_site_var1 = st.radio("What site are you working with?", ('Draftkings', 'Fanduel'), key='sim_site_var1')
304
  if sim_site_var1 == 'Draftkings':
 
410
 
411
  # Data Copying
412
  st.session_state.Sim_Winner_Export = Sim_Winner_Frame.copy()
413
+ for col in st.session_state.Sim_Winner_Export.iloc[:, 0:9].columns:
414
+ st.session_state.Sim_Winner_Export[col] = st.session_state.Sim_Winner_Export[col].map(dk_id_dict)
415
 
416
  # Data Copying
417
  st.session_state.Sim_Winner_Display = Sim_Winner_Frame.copy()