Multichem commited on
Commit
e348da4
·
verified ·
1 Parent(s): 7ec8f21

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +37 -37
app.py CHANGED
@@ -286,7 +286,7 @@ with tab1:
286
  with col2:
287
  if st.button("Run Contest Sim"):
288
  if 'working_seed' in st.session_state:
289
- maps_dict = {
290
  'Projection_map':dict(zip(raw_baselines.Player,raw_baselines.Median)),
291
  'Salary_map':dict(zip(raw_baselines.Player,raw_baselines.Salary)),
292
  'Pos_map':dict(zip(raw_baselines.Player,raw_baselines.Position)),
@@ -294,7 +294,7 @@ with tab1:
294
  'Team_map':dict(zip(raw_baselines.Player,raw_baselines.Team)),
295
  'STDev_map':dict(zip(raw_baselines.Player,raw_baselines.STDev))
296
  }
297
- Sim_Winners = sim_contest(1000, st.session_state.working_seed, maps_dict, sharp_split, Contest_Size)
298
  Sim_Winner_Frame = pd.DataFrame(np.concatenate(Sim_Winners))
299
 
300
  #st.table(Sim_Winner_Frame)
@@ -324,7 +324,7 @@ with tab1:
324
  st.session_state.working_seed = DK_seed.copy()
325
  elif sim_site_var1 == 'Fanduel':
326
  st.session_state.working_seed = FD_seed.copy()
327
- maps_dict = {
328
  'Projection_map':dict(zip(raw_baselines.Player,raw_baselines.Median)),
329
  'Salary_map':dict(zip(raw_baselines.Player,raw_baselines.Salary)),
330
  'Pos_map':dict(zip(raw_baselines.Player,raw_baselines.Position)),
@@ -332,7 +332,7 @@ with tab1:
332
  'Team_map':dict(zip(raw_baselines.Player,raw_baselines.Team)),
333
  'STDev_map':dict(zip(raw_baselines.Player,raw_baselines.STDev))
334
  }
335
- Sim_Winners = sim_contest(1000, st.session_state.working_seed, maps_dict, sharp_split, Contest_Size)
336
  Sim_Winner_Frame = pd.DataFrame(np.concatenate(Sim_Winners))
337
 
338
  #st.table(Sim_Winner_Frame)
@@ -365,12 +365,12 @@ with tab1:
365
  freq_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,0:9].values, return_counts=True)),
366
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
367
  freq_working['Freq'] = freq_working['Freq'].astype(int)
368
- freq_working['Position'] = freq_working['Player'].map(maps_dict['Pos_map'])
369
- freq_working['Salary'] = freq_working['Player'].map(maps_dict['Salary_map'])
370
- freq_working['Proj Own'] = freq_working['Player'].map(maps_dict['Own_map']) / 100
371
  freq_working['Exposure'] = freq_working['Freq']/(1000)
372
  freq_working['Edge'] = freq_working['Exposure'] - freq_working['Proj Own']
373
- freq_working['Team'] = freq_working['Player'].map(maps_dict['Team_map'])
374
  st.session_state.player_freq = freq_working.copy()
375
 
376
  if sim_site_var1 == 'Draftkings':
@@ -380,12 +380,12 @@ with tab1:
380
  qb_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,0:1].values, return_counts=True)),
381
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
382
  qb_working['Freq'] = qb_working['Freq'].astype(int)
383
- qb_working['Position'] = qb_working['Player'].map(maps_dict['Pos_map'])
384
- qb_working['Salary'] = qb_working['Player'].map(maps_dict['Salary_map'])
385
- qb_working['Proj Own'] = qb_working['Player'].map(maps_dict['Own_map']) / 100
386
  qb_working['Exposure'] = qb_working['Freq']/(1000)
387
  qb_working['Edge'] = qb_working['Exposure'] - qb_working['Proj Own']
388
- qb_working['Team'] = qb_working['Player'].map(maps_dict['Team_map'])
389
  st.session_state.qb_freq = qb_working.copy()
390
 
391
  if sim_site_var1 == 'Draftkings':
@@ -395,12 +395,12 @@ with tab1:
395
  rbwrte_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,1:7].values, return_counts=True)),
396
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
397
  rbwrte_working['Freq'] = rbwrte_working['Freq'].astype(int)
398
- rbwrte_working['Position'] = rbwrte_working['Player'].map(maps_dict['Pos_map'])
399
- rbwrte_working['Salary'] = rbwrte_working['Player'].map(maps_dict['Salary_map'])
400
- rbwrte_working['Proj Own'] = rbwrte_working['Player'].map(maps_dict['Own_map']) / 100
401
  rbwrte_working['Exposure'] = rbwrte_working['Freq']/(1000)
402
  rbwrte_working['Edge'] = rbwrte_working['Exposure'] - rbwrte_working['Proj Own']
403
- rbwrte_working['Team'] = rbwrte_working['Player'].map(maps_dict['Team_map'])
404
  st.session_state.rbwrte_freq = rbwrte_working.copy()
405
 
406
  if sim_site_var1 == 'Draftkings':
@@ -410,12 +410,12 @@ with tab1:
410
  rb_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,1:3].values, return_counts=True)),
411
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
412
  rb_working['Freq'] = rb_working['Freq'].astype(int)
413
- rb_working['Position'] = rb_working['Player'].map(maps_dict['Pos_map'])
414
- rb_working['Salary'] = rb_working['Player'].map(maps_dict['Salary_map'])
415
- rb_working['Proj Own'] = rb_working['Player'].map(maps_dict['Own_map']) / 100
416
  rb_working['Exposure'] = rb_working['Freq']/(1000)
417
  rb_working['Edge'] = rb_working['Exposure'] - rb_working['Proj Own']
418
- rb_working['Team'] = rb_working['Player'].map(maps_dict['Team_map'])
419
  st.session_state.rb_freq = rb_working.copy()
420
 
421
  if sim_site_var1 == 'Draftkings':
@@ -425,12 +425,12 @@ with tab1:
425
  wr_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,3:6].values, return_counts=True)),
426
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
427
  wr_working['Freq'] = wr_working['Freq'].astype(int)
428
- wr_working['Position'] = wr_working['Player'].map(maps_dict['Pos_map'])
429
- wr_working['Salary'] = wr_working['Player'].map(maps_dict['Salary_map'])
430
- wr_working['Proj Own'] = wr_working['Player'].map(maps_dict['Own_map']) / 100
431
  wr_working['Exposure'] = wr_working['Freq']/(1000)
432
  wr_working['Edge'] = wr_working['Exposure'] - wr_working['Proj Own']
433
- wr_working['Team'] = wr_working['Player'].map(maps_dict['Team_map'])
434
  st.session_state.wr_freq = wr_working.copy()
435
 
436
  if sim_site_var1 == 'Draftkings':
@@ -440,12 +440,12 @@ with tab1:
440
  te_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,6:7].values, return_counts=True)),
441
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
442
  te_working['Freq'] = te_working['Freq'].astype(int)
443
- te_working['Position'] = te_working['Player'].map(maps_dict['Pos_map'])
444
- te_working['Salary'] = te_working['Player'].map(maps_dict['Salary_map'])
445
- te_working['Proj Own'] = te_working['Player'].map(maps_dict['Own_map']) / 100
446
  te_working['Exposure'] = te_working['Freq']/(1000)
447
  te_working['Edge'] = te_working['Exposure'] - te_working['Proj Own']
448
- te_working['Team'] = te_working['Player'].map(maps_dict['Team_map'])
449
  st.session_state.te_freq = te_working.copy()
450
 
451
  if sim_site_var1 == 'Draftkings':
@@ -455,12 +455,12 @@ with tab1:
455
  flex_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,7:8].values, return_counts=True)),
456
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
457
  flex_working['Freq'] = flex_working['Freq'].astype(int)
458
- flex_working['Position'] = flex_working['Player'].map(maps_dict['Pos_map'])
459
- flex_working['Salary'] = flex_working['Player'].map(maps_dict['Salary_map'])
460
- flex_working['Proj Own'] = flex_working['Player'].map(maps_dict['Own_map']) / 100
461
  flex_working['Exposure'] = flex_working['Freq']/(1000)
462
  flex_working['Edge'] = flex_working['Exposure'] - flex_working['Proj Own']
463
- flex_working['Team'] = flex_working['Player'].map(maps_dict['Team_map'])
464
  st.session_state.flex_freq = flex_working.copy()
465
 
466
  if sim_site_var1 == 'Draftkings':
@@ -470,12 +470,12 @@ with tab1:
470
  dst_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,8:9].values, return_counts=True)),
471
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
472
  dst_working['Freq'] = dst_working['Freq'].astype(int)
473
- dst_working['Position'] = dst_working['Player'].map(maps_dict['Pos_map'])
474
- dst_working['Salary'] = dst_working['Player'].map(maps_dict['Salary_map'])
475
- dst_working['Proj Own'] = dst_working['Player'].map(maps_dict['Own_map']) / 100
476
  dst_working['Exposure'] = dst_working['Freq']/(1000)
477
  dst_working['Edge'] = dst_working['Exposure'] - dst_working['Proj Own']
478
- dst_working['Team'] = dst_working['Player'].map(maps_dict['Team_map'])
479
  st.session_state.dst_freq = dst_working.copy()
480
 
481
  if sim_site_var1 == 'Draftkings':
@@ -566,7 +566,7 @@ with tab1:
566
  with tab2:
567
  if 'Sim_Winner_Display' in st.session_state:
568
  # Apply position mapping to FLEX column
569
- flex_positions = st.session_state.freq_copy['FLEX'].map(maps_dict['Pos_map'])
570
 
571
  # Count occurrences of each position in FLEX
572
  flex_counts = flex_positions.value_counts()
 
286
  with col2:
287
  if st.button("Run Contest Sim"):
288
  if 'working_seed' in st.session_state:
289
+ st.session_state.maps_dict = {
290
  'Projection_map':dict(zip(raw_baselines.Player,raw_baselines.Median)),
291
  'Salary_map':dict(zip(raw_baselines.Player,raw_baselines.Salary)),
292
  'Pos_map':dict(zip(raw_baselines.Player,raw_baselines.Position)),
 
294
  'Team_map':dict(zip(raw_baselines.Player,raw_baselines.Team)),
295
  'STDev_map':dict(zip(raw_baselines.Player,raw_baselines.STDev))
296
  }
297
+ Sim_Winners = sim_contest(1000, st.session_state.working_seed, st.session_state.maps_dict, sharp_split, Contest_Size)
298
  Sim_Winner_Frame = pd.DataFrame(np.concatenate(Sim_Winners))
299
 
300
  #st.table(Sim_Winner_Frame)
 
324
  st.session_state.working_seed = DK_seed.copy()
325
  elif sim_site_var1 == 'Fanduel':
326
  st.session_state.working_seed = FD_seed.copy()
327
+ st.session_state.maps_dict = {
328
  'Projection_map':dict(zip(raw_baselines.Player,raw_baselines.Median)),
329
  'Salary_map':dict(zip(raw_baselines.Player,raw_baselines.Salary)),
330
  'Pos_map':dict(zip(raw_baselines.Player,raw_baselines.Position)),
 
332
  'Team_map':dict(zip(raw_baselines.Player,raw_baselines.Team)),
333
  'STDev_map':dict(zip(raw_baselines.Player,raw_baselines.STDev))
334
  }
335
+ Sim_Winners = sim_contest(1000, st.session_state.working_seed, st.session_state.maps_dict, sharp_split, Contest_Size)
336
  Sim_Winner_Frame = pd.DataFrame(np.concatenate(Sim_Winners))
337
 
338
  #st.table(Sim_Winner_Frame)
 
365
  freq_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,0:9].values, return_counts=True)),
366
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
367
  freq_working['Freq'] = freq_working['Freq'].astype(int)
368
+ freq_working['Position'] = freq_working['Player'].map(st.session_state.maps_dict['Pos_map'])
369
+ freq_working['Salary'] = freq_working['Player'].map(st.session_state.maps_dict['Salary_map'])
370
+ freq_working['Proj Own'] = freq_working['Player'].map(st.session_state.maps_dict['Own_map']) / 100
371
  freq_working['Exposure'] = freq_working['Freq']/(1000)
372
  freq_working['Edge'] = freq_working['Exposure'] - freq_working['Proj Own']
373
+ freq_working['Team'] = freq_working['Player'].map(st.session_state.maps_dict['Team_map'])
374
  st.session_state.player_freq = freq_working.copy()
375
 
376
  if sim_site_var1 == 'Draftkings':
 
380
  qb_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,0:1].values, return_counts=True)),
381
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
382
  qb_working['Freq'] = qb_working['Freq'].astype(int)
383
+ qb_working['Position'] = qb_working['Player'].map(st.session_state.maps_dict['Pos_map'])
384
+ qb_working['Salary'] = qb_working['Player'].map(st.session_state.maps_dict['Salary_map'])
385
+ qb_working['Proj Own'] = qb_working['Player'].map(st.session_state.maps_dict['Own_map']) / 100
386
  qb_working['Exposure'] = qb_working['Freq']/(1000)
387
  qb_working['Edge'] = qb_working['Exposure'] - qb_working['Proj Own']
388
+ qb_working['Team'] = qb_working['Player'].map(st.session_state.maps_dict['Team_map'])
389
  st.session_state.qb_freq = qb_working.copy()
390
 
391
  if sim_site_var1 == 'Draftkings':
 
395
  rbwrte_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,1:7].values, return_counts=True)),
396
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
397
  rbwrte_working['Freq'] = rbwrte_working['Freq'].astype(int)
398
+ rbwrte_working['Position'] = rbwrte_working['Player'].map(st.session_state.maps_dict['Pos_map'])
399
+ rbwrte_working['Salary'] = rbwrte_working['Player'].map(st.session_state.maps_dict['Salary_map'])
400
+ rbwrte_working['Proj Own'] = rbwrte_working['Player'].map(st.session_state.maps_dict['Own_map']) / 100
401
  rbwrte_working['Exposure'] = rbwrte_working['Freq']/(1000)
402
  rbwrte_working['Edge'] = rbwrte_working['Exposure'] - rbwrte_working['Proj Own']
403
+ rbwrte_working['Team'] = rbwrte_working['Player'].map(st.session_state.maps_dict['Team_map'])
404
  st.session_state.rbwrte_freq = rbwrte_working.copy()
405
 
406
  if sim_site_var1 == 'Draftkings':
 
410
  rb_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,1:3].values, return_counts=True)),
411
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
412
  rb_working['Freq'] = rb_working['Freq'].astype(int)
413
+ rb_working['Position'] = rb_working['Player'].map(st.session_state.maps_dict['Pos_map'])
414
+ rb_working['Salary'] = rb_working['Player'].map(st.session_state.maps_dict['Salary_map'])
415
+ rb_working['Proj Own'] = rb_working['Player'].map(st.session_state.maps_dict['Own_map']) / 100
416
  rb_working['Exposure'] = rb_working['Freq']/(1000)
417
  rb_working['Edge'] = rb_working['Exposure'] - rb_working['Proj Own']
418
+ rb_working['Team'] = rb_working['Player'].map(st.session_state.maps_dict['Team_map'])
419
  st.session_state.rb_freq = rb_working.copy()
420
 
421
  if sim_site_var1 == 'Draftkings':
 
425
  wr_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,3:6].values, return_counts=True)),
426
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
427
  wr_working['Freq'] = wr_working['Freq'].astype(int)
428
+ wr_working['Position'] = wr_working['Player'].map(st.session_state.maps_dict['Pos_map'])
429
+ wr_working['Salary'] = wr_working['Player'].map(st.session_state.maps_dict['Salary_map'])
430
+ wr_working['Proj Own'] = wr_working['Player'].map(st.session_state.maps_dict['Own_map']) / 100
431
  wr_working['Exposure'] = wr_working['Freq']/(1000)
432
  wr_working['Edge'] = wr_working['Exposure'] - wr_working['Proj Own']
433
+ wr_working['Team'] = wr_working['Player'].map(st.session_state.maps_dict['Team_map'])
434
  st.session_state.wr_freq = wr_working.copy()
435
 
436
  if sim_site_var1 == 'Draftkings':
 
440
  te_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,6:7].values, return_counts=True)),
441
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
442
  te_working['Freq'] = te_working['Freq'].astype(int)
443
+ te_working['Position'] = te_working['Player'].map(st.session_state.maps_dict['Pos_map'])
444
+ te_working['Salary'] = te_working['Player'].map(st.session_state.maps_dict['Salary_map'])
445
+ te_working['Proj Own'] = te_working['Player'].map(st.session_state.maps_dict['Own_map']) / 100
446
  te_working['Exposure'] = te_working['Freq']/(1000)
447
  te_working['Edge'] = te_working['Exposure'] - te_working['Proj Own']
448
+ te_working['Team'] = te_working['Player'].map(st.session_state.maps_dict['Team_map'])
449
  st.session_state.te_freq = te_working.copy()
450
 
451
  if sim_site_var1 == 'Draftkings':
 
455
  flex_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,7:8].values, return_counts=True)),
456
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
457
  flex_working['Freq'] = flex_working['Freq'].astype(int)
458
+ flex_working['Position'] = flex_working['Player'].map(st.session_state.maps_dict['Pos_map'])
459
+ flex_working['Salary'] = flex_working['Player'].map(st.session_state.maps_dict['Salary_map'])
460
+ flex_working['Proj Own'] = flex_working['Player'].map(st.session_state.maps_dict['Own_map']) / 100
461
  flex_working['Exposure'] = flex_working['Freq']/(1000)
462
  flex_working['Edge'] = flex_working['Exposure'] - flex_working['Proj Own']
463
+ flex_working['Team'] = flex_working['Player'].map(st.session_state.maps_dict['Team_map'])
464
  st.session_state.flex_freq = flex_working.copy()
465
 
466
  if sim_site_var1 == 'Draftkings':
 
470
  dst_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,8:9].values, return_counts=True)),
471
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
472
  dst_working['Freq'] = dst_working['Freq'].astype(int)
473
+ dst_working['Position'] = dst_working['Player'].map(st.session_state.maps_dict['Pos_map'])
474
+ dst_working['Salary'] = dst_working['Player'].map(st.session_state.maps_dict['Salary_map'])
475
+ dst_working['Proj Own'] = dst_working['Player'].map(st.session_state.maps_dict['Own_map']) / 100
476
  dst_working['Exposure'] = dst_working['Freq']/(1000)
477
  dst_working['Edge'] = dst_working['Exposure'] - dst_working['Proj Own']
478
+ dst_working['Team'] = dst_working['Player'].map(st.session_state.maps_dict['Team_map'])
479
  st.session_state.dst_freq = dst_working.copy()
480
 
481
  if sim_site_var1 == 'Draftkings':
 
566
  with tab2:
567
  if 'Sim_Winner_Display' in st.session_state:
568
  # Apply position mapping to FLEX column
569
+ flex_positions = st.session_state.freq_copy['FLEX'].map(st.session_state.maps_dict['Pos_map'])
570
 
571
  # Count occurrences of each position in FLEX
572
  flex_counts = flex_positions.value_counts()