Multichem commited on
Commit
ea67ea9
·
verified ·
1 Parent(s): 1484753

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +65 -100
app.py CHANGED
@@ -184,7 +184,6 @@ with tab1:
184
  elif stack_var1 == 'Full Slate':
185
  stack_var2 = [4, 3, 2, 1, 0]
186
 
187
-
188
  if st.button("Prepare data export", key='data_export'):
189
  data_export = st.session_state.working_seed.copy()
190
  st.download_button(
@@ -193,7 +192,6 @@ with tab1:
193
  file_name='MLB_optimals_export.csv',
194
  mime='text/csv',
195
  )
196
- st.write(st.session_state)
197
 
198
  with col2:
199
  if st.button("Load Data", key='load_data'):
@@ -221,12 +219,7 @@ with tab1:
221
 
222
  with st.container():
223
  if 'data_export_display' in st.session_state:
224
- try:
225
- st.table(st.session_state.data_export_display)
226
- except:
227
- st.write("resources low, waiting 5 seconds and trying again")
228
- time.sleep(5)
229
- st.table(st.session_state.data_export_display)
230
 
231
  with tab2:
232
  col1, col2 = st.columns([1, 7])
@@ -310,52 +303,6 @@ with tab2:
310
  # Data Copying
311
  st.session_state.Sim_Winner_Display = Sim_Winner_Frame.copy()
312
 
313
- if sim_site_var1 == 'Draftkings':
314
- st.session_state.player_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,0:10].values, return_counts=True)),
315
- columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
316
- elif sim_site_var1 == 'Fanduel':
317
- st.session_state.player_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,0:9].values, return_counts=True)),
318
- columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
319
- st.session_state.player_freq['Freq'] = st.session_state.player_freq['Freq'].astype(int)
320
- st.session_state.player_freq['Position'] = st.session_state.player_freq['Player'].map(maps_dict['Pos_map'])
321
- st.session_state.player_freq['Salary'] = st.session_state.player_freq['Player'].map(maps_dict['Salary_map'])
322
- st.session_state.player_freq['Proj Own'] = st.session_state.player_freq['Player'].map(maps_dict['Own_map']) / 100
323
- st.session_state.player_freq['Exposure'] = st.session_state.player_freq['Freq']/(1000)
324
- st.session_state.player_freq['Edge'] = st.session_state.player_freq['Exposure'] - st.session_state.player_freq['Proj Own']
325
- st.session_state.player_freq['Team'] = st.session_state.player_freq['Player'].map(maps_dict['Team_map'])
326
-
327
- if sim_site_var1 == 'Draftkings':
328
- st.session_state.sp_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,0:2].values, return_counts=True)),
329
- columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
330
- elif sim_site_var1 == 'Fanduel':
331
- st.session_state.sp_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,0:1].values, return_counts=True)),
332
- columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
333
- st.session_state.sp_freq['Freq'] = st.session_state.sp_freq['Freq'].astype(int)
334
- st.session_state.sp_freq['Position'] = st.session_state.sp_freq['Player'].map(maps_dict['Pos_map'])
335
- st.session_state.sp_freq['Salary'] = st.session_state.sp_freq['Player'].map(maps_dict['Salary_map'])
336
- st.session_state.sp_freq['Proj Own'] = st.session_state.sp_freq['Player'].map(maps_dict['Own_map']) / 100
337
- st.session_state.sp_freq['Exposure'] = st.session_state.sp_freq['Freq']/(1000)
338
- st.session_state.sp_freq['Edge'] = st.session_state.sp_freq['Exposure'] - st.session_state.sp_freq['Proj Own']
339
- st.session_state.sp_freq['Team'] = st.session_state.sp_freq['Player'].map(maps_dict['Team_map'])
340
-
341
- if sim_site_var1 == 'Draftkings':
342
- st.session_state.team_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,12:13].values, return_counts=True)),
343
- columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
344
- elif sim_site_var1 == 'Fanduel':
345
- st.session_state.team_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,11:12].values, return_counts=True)),
346
- columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
347
- st.session_state.team_freq['Freq'] = st.session_state.team_freq['Freq'].astype(int)
348
- st.session_state.team_freq['Exposure'] = st.session_state.team_freq['Freq']/(1000)
349
-
350
- if sim_site_var1 == 'Draftkings':
351
- st.session_state.stack_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,13:14].values, return_counts=True)),
352
- columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
353
- elif sim_site_var1 == 'Fanduel':
354
- st.session_state.stack_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,12:13].values, return_counts=True)),
355
- columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
356
- st.session_state.stack_freq['Freq'] = st.session_state.stack_freq['Freq'].astype(int)
357
- st.session_state.stack_freq['Exposure'] = st.session_state.stack_freq['Freq']/(1000)
358
-
359
  else:
360
  if sim_site_var1 == 'Draftkings':
361
  st.session_state.working_seed = DK_seed.copy()
@@ -399,56 +346,74 @@ with tab2:
399
  # Data Copying
400
  st.session_state.Sim_Winner_Display = Sim_Winner_Frame.copy()
401
 
402
- if sim_site_var1 == 'Draftkings':
403
- st.session_state.player_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,0:10].values, return_counts=True)),
404
- columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
405
- elif sim_site_var1 == 'Fanduel':
406
- st.session_state.player_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,0:9].values, return_counts=True)),
407
- columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
408
- st.session_state.player_freq['Freq'] = st.session_state.player_freq['Freq'].astype(int)
409
- st.session_state.player_freq['Position'] = st.session_state.player_freq['Player'].map(maps_dict['Pos_map'])
410
- st.session_state.player_freq['Salary'] = st.session_state.player_freq['Player'].map(maps_dict['Salary_map'])
411
- st.session_state.player_freq['Proj Own'] = st.session_state.player_freq['Player'].map(maps_dict['Own_map']) / 100
412
- st.session_state.player_freq['Exposure'] = st.session_state.player_freq['Freq']/(1000)
413
- st.session_state.player_freq['Edge'] = st.session_state.player_freq['Exposure'] - st.session_state.player_freq['Proj Own']
414
- st.session_state.player_freq['Team'] = st.session_state.player_freq['Player'].map(maps_dict['Team_map'])
415
 
416
- if sim_site_var1 == 'Draftkings':
417
- st.session_state.sp_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,0:2].values, return_counts=True)),
418
- columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
419
- elif sim_site_var1 == 'Fanduel':
420
- st.session_state.sp_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,0:1].values, return_counts=True)),
421
- columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
422
- st.session_state.sp_freq['Freq'] = st.session_state.sp_freq['Freq'].astype(int)
423
- st.session_state.sp_freq['Position'] = st.session_state.sp_freq['Player'].map(maps_dict['Pos_map'])
424
- st.session_state.sp_freq['Salary'] = st.session_state.sp_freq['Player'].map(maps_dict['Salary_map'])
425
- st.session_state.sp_freq['Proj Own'] = st.session_state.sp_freq['Player'].map(maps_dict['Own_map']) / 100
426
- st.session_state.sp_freq['Exposure'] = st.session_state.sp_freq['Freq']/(1000)
427
- st.session_state.sp_freq['Edge'] = st.session_state.sp_freq['Exposure'] - st.session_state.sp_freq['Proj Own']
428
- st.session_state.sp_freq['Team'] = st.session_state.sp_freq['Player'].map(maps_dict['Team_map'])
429
 
430
- if sim_site_var1 == 'Draftkings':
431
- st.session_state.team_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,12:13].values, return_counts=True)),
432
- columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
433
- elif sim_site_var1 == 'Fanduel':
434
- st.session_state.team_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,11:12].values, return_counts=True)),
435
- columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
436
- st.session_state.team_freq['Freq'] = st.session_state.team_freq['Freq'].astype(int)
437
- st.session_state.team_freq['Exposure'] = st.session_state.team_freq['Freq']/(1000)
438
-
439
- if sim_site_var1 == 'Draftkings':
440
- st.session_state.stack_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,13:14].values, return_counts=True)),
441
- columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
442
- elif sim_site_var1 == 'Fanduel':
443
- st.session_state.stack_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,12:13].values, return_counts=True)),
444
- columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
445
- st.session_state.stack_freq['Freq'] = st.session_state.stack_freq['Freq'].astype(int)
446
- st.session_state.stack_freq['Exposure'] = st.session_state.stack_freq['Freq']/(1000)
447
 
448
- with st.container():
449
- if 'Sim_Winner_Frame' in st.session_state:
450
- st.dataframe(st.session_state.Sim_Winner_Frame)
 
 
 
 
 
451
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
452
  with st.container():
453
  tab1, tab2, tab3, tab4 = st.tabs(['Overall Exposures', 'SP Exposures', 'Team Exposures', 'Stack Size Exposures'])
454
  with tab1:
 
184
  elif stack_var1 == 'Full Slate':
185
  stack_var2 = [4, 3, 2, 1, 0]
186
 
 
187
  if st.button("Prepare data export", key='data_export'):
188
  data_export = st.session_state.working_seed.copy()
189
  st.download_button(
 
192
  file_name='MLB_optimals_export.csv',
193
  mime='text/csv',
194
  )
 
195
 
196
  with col2:
197
  if st.button("Load Data", key='load_data'):
 
219
 
220
  with st.container():
221
  if 'data_export_display' in st.session_state:
222
+ st.dataframe(st.session_state.data_export_display.style.format(freq_format, precision=2), use_container_width = True)
 
 
 
 
 
223
 
224
  with tab2:
225
  col1, col2 = st.columns([1, 7])
 
303
  # Data Copying
304
  st.session_state.Sim_Winner_Display = Sim_Winner_Frame.copy()
305
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
306
  else:
307
  if sim_site_var1 == 'Draftkings':
308
  st.session_state.working_seed = DK_seed.copy()
 
346
  # Data Copying
347
  st.session_state.Sim_Winner_Display = Sim_Winner_Frame.copy()
348
 
349
+ if sim_site_var1 == 'Draftkings':
350
+ st.session_state.player_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,0:10].values, return_counts=True)),
351
+ columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
352
+ elif sim_site_var1 == 'Fanduel':
353
+ st.session_state.player_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,0:9].values, return_counts=True)),
354
+ columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
355
+ st.session_state.player_freq['Freq'] = st.session_state.player_freq['Freq'].astype(int)
356
+ st.session_state.player_freq['Position'] = st.session_state.player_freq['Player'].map(maps_dict['Pos_map'])
357
+ st.session_state.player_freq['Salary'] = st.session_state.player_freq['Player'].map(maps_dict['Salary_map'])
358
+ st.session_state.player_freq['Proj Own'] = st.session_state.player_freq['Player'].map(maps_dict['Own_map']) / 100
359
+ st.session_state.player_freq['Exposure'] = st.session_state.player_freq['Freq']/(1000)
360
+ st.session_state.player_freq['Edge'] = st.session_state.player_freq['Exposure'] - st.session_state.player_freq['Proj Own']
361
+ st.session_state.player_freq['Team'] = st.session_state.player_freq['Player'].map(maps_dict['Team_map'])
362
 
363
+ if sim_site_var1 == 'Draftkings':
364
+ st.session_state.sp_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,0:2].values, return_counts=True)),
365
+ columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
366
+ elif sim_site_var1 == 'Fanduel':
367
+ st.session_state.sp_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,0:1].values, return_counts=True)),
368
+ columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
369
+ st.session_state.sp_freq['Freq'] = st.session_state.sp_freq['Freq'].astype(int)
370
+ st.session_state.sp_freq['Position'] = st.session_state.sp_freq['Player'].map(maps_dict['Pos_map'])
371
+ st.session_state.sp_freq['Salary'] = st.session_state.sp_freq['Player'].map(maps_dict['Salary_map'])
372
+ st.session_state.sp_freq['Proj Own'] = st.session_state.sp_freq['Player'].map(maps_dict['Own_map']) / 100
373
+ st.session_state.sp_freq['Exposure'] = st.session_state.sp_freq['Freq']/(1000)
374
+ st.session_state.sp_freq['Edge'] = st.session_state.sp_freq['Exposure'] - st.session_state.sp_freq['Proj Own']
375
+ st.session_state.sp_freq['Team'] = st.session_state.sp_freq['Player'].map(maps_dict['Team_map'])
376
 
377
+ if sim_site_var1 == 'Draftkings':
378
+ st.session_state.team_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,12:13].values, return_counts=True)),
379
+ columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
380
+ elif sim_site_var1 == 'Fanduel':
381
+ st.session_state.team_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,11:12].values, return_counts=True)),
382
+ columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
383
+ st.session_state.team_freq['Freq'] = st.session_state.team_freq['Freq'].astype(int)
384
+ st.session_state.team_freq['Exposure'] = st.session_state.team_freq['Freq']/(1000)
 
 
 
 
 
 
 
 
 
385
 
386
+ if sim_site_var1 == 'Draftkings':
387
+ st.session_state.stack_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,13:14].values, return_counts=True)),
388
+ columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
389
+ elif sim_site_var1 == 'Fanduel':
390
+ st.session_state.stack_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,12:13].values, return_counts=True)),
391
+ columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
392
+ st.session_state.stack_freq['Freq'] = st.session_state.stack_freq['Freq'].astype(int)
393
+ st.session_state.stack_freq['Exposure'] = st.session_state.stack_freq['Freq']/(1000)
394
 
395
+ with st.container():
396
+ if 'player_freq' in st.session_state:
397
+ player_split_var2 = st.radio("Are you wanting to isolate any lineups with specific players?", ('Full Players', 'Specific Players'), key='player_split_var2')
398
+ if player_split_var2 == 'Specific Players':
399
+ find_var2 = st.multiselect('Which players must be included in the lineups?', options = st.session_state.player_freq['Player'].unique())
400
+ elif player_split_var2 == 'Full Players':
401
+ find_var2 = st.session_state.player_freq.Player.values.tolist()
402
+
403
+ if player_split_var2 == 'Specific Players':
404
+ st.session_state.Sim_Winner_Display = st.session_state.Sim_Winner_Frame[np.equal.outer(st.session_state.Sim_Winner_Frame.to_numpy(), find_var2).any(axis=1).all(axis=1)]
405
+ if player_split_var2 == 'Full Players':
406
+ st.session_state.Sim_Winner_Display = st.session_state.Sim_Winner_Frame
407
+ if 'Sim_Winner_Display' in st.session_state:
408
+ st.dataframe(st.session_state.Sim_Winner_Display.style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').background_gradient(cmap='RdYlGn_r', subset=['Own']).format(precision=2), use_container_width = True)
409
+ if 'Sim_Winner_Export' in st.session_state:
410
+ st.download_button(
411
+ label="Export Full Frame",
412
+ data=st.session_state.Sim_Winner_Export.to_csv().encode('utf-8'),
413
+ file_name='MLB_consim_export.csv',
414
+ mime='text/csv',
415
+ )
416
+
417
  with st.container():
418
  tab1, tab2, tab3, tab4 = st.tabs(['Overall Exposures', 'SP Exposures', 'Team Exposures', 'Stack Size Exposures'])
419
  with tab1: