James McCool commited on
Commit
f1271aa
·
1 Parent(s): 92d6486

Refactor app.py to utilize session state for mapping player data. Updated frequency calculations to reference session state maps instead of local variables, enhancing data consistency and management across contest simulations.

Browse files
Files changed (1) hide show
  1. app.py +26 -26
app.py CHANGED
@@ -278,7 +278,7 @@ with tab1:
278
  with col2:
279
  if st.button("Run Contest Sim"):
280
  if 'working_seed' in st.session_state:
281
- maps_dict = {
282
  'Projection_map':dict(zip(raw_baselines.Player,raw_baselines.Median)),
283
  'Salary_map':dict(zip(raw_baselines.Player,raw_baselines.Salary)),
284
  'Pos_map':dict(zip(raw_baselines.Player,raw_baselines.Position)),
@@ -367,12 +367,12 @@ with tab1:
367
  freq_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,0:9].values, return_counts=True)),
368
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
369
  freq_working['Freq'] = freq_working['Freq'].astype(int)
370
- freq_working['Position'] = freq_working['Player'].map(maps_dict['Pos_map'])
371
- freq_working['Salary'] = freq_working['Player'].map(maps_dict['Salary_map'])
372
- freq_working['Proj Own'] = freq_working['Player'].map(maps_dict['Own_map']) / 100
373
  freq_working['Exposure'] = freq_working['Freq']/(1000)
374
  freq_working['Edge'] = freq_working['Exposure'] - freq_working['Proj Own']
375
- freq_working['Team'] = freq_working['Player'].map(maps_dict['Team_map'])
376
  st.session_state.player_freq = freq_working.copy()
377
 
378
  if sim_site_var1 == 'Draftkings':
@@ -382,12 +382,12 @@ with tab1:
382
  center_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,0:2].values, return_counts=True)),
383
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
384
  center_working['Freq'] = center_working['Freq'].astype(int)
385
- center_working['Position'] = center_working['Player'].map(maps_dict['Pos_map'])
386
- center_working['Salary'] = center_working['Player'].map(maps_dict['Salary_map'])
387
- center_working['Proj Own'] = center_working['Player'].map(maps_dict['Own_map']) / 100
388
  center_working['Exposure'] = center_working['Freq']/(1000)
389
  center_working['Edge'] = center_working['Exposure'] - center_working['Proj Own']
390
- center_working['Team'] = center_working['Player'].map(maps_dict['Team_map'])
391
  st.session_state.center_freq = center_working.copy()
392
 
393
  if sim_site_var1 == 'Draftkings':
@@ -397,12 +397,12 @@ with tab1:
397
  wing_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,2:4].values, return_counts=True)),
398
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
399
  wing_working['Freq'] = wing_working['Freq'].astype(int)
400
- wing_working['Position'] = wing_working['Player'].map(maps_dict['Pos_map'])
401
- wing_working['Salary'] = wing_working['Player'].map(maps_dict['Salary_map'])
402
- wing_working['Proj Own'] = wing_working['Player'].map(maps_dict['Own_map']) / 100
403
  wing_working['Exposure'] = wing_working['Freq']/(1000)
404
  wing_working['Edge'] = wing_working['Exposure'] - wing_working['Proj Own']
405
- wing_working['Team'] = wing_working['Player'].map(maps_dict['Team_map'])
406
  st.session_state.wing_freq = wing_working.copy()
407
 
408
  if sim_site_var1 == 'Draftkings':
@@ -412,12 +412,12 @@ with tab1:
412
  dmen_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,4:6].values, return_counts=True)),
413
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
414
  dmen_working['Freq'] = dmen_working['Freq'].astype(int)
415
- dmen_working['Position'] = dmen_working['Player'].map(maps_dict['Pos_map'])
416
- dmen_working['Salary'] = dmen_working['Player'].map(maps_dict['Salary_map'])
417
- dmen_working['Proj Own'] = dmen_working['Player'].map(maps_dict['Own_map']) / 100
418
  dmen_working['Exposure'] = dmen_working['Freq']/(1000)
419
  dmen_working['Edge'] = dmen_working['Exposure'] - dmen_working['Proj Own']
420
- dmen_working['Team'] = dmen_working['Player'].map(maps_dict['Team_map'])
421
  st.session_state.dmen_freq = dmen_working.copy()
422
 
423
  if sim_site_var1 == 'Draftkings':
@@ -427,12 +427,12 @@ with tab1:
427
  flex_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,6:8].values, return_counts=True)),
428
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
429
  flex_working['Freq'] = flex_working['Freq'].astype(int)
430
- flex_working['Position'] = flex_working['Player'].map(maps_dict['Pos_map'])
431
- flex_working['Salary'] = flex_working['Player'].map(maps_dict['Salary_map'])
432
- flex_working['Proj Own'] = flex_working['Player'].map(maps_dict['Own_map']) / 100
433
  flex_working['Exposure'] = flex_working['Freq']/(1000)
434
  flex_working['Edge'] = flex_working['Exposure'] - flex_working['Proj Own']
435
- flex_working['Team'] = flex_working['Player'].map(maps_dict['Team_map'])
436
  st.session_state.flex_freq = flex_working.copy()
437
 
438
  if sim_site_var1 == 'Draftkings':
@@ -442,12 +442,12 @@ with tab1:
442
  goalie_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,8:9].values, return_counts=True)),
443
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
444
  goalie_working['Freq'] = goalie_working['Freq'].astype(int)
445
- goalie_working['Position'] = goalie_working['Player'].map(maps_dict['Pos_map'])
446
- goalie_working['Salary'] = goalie_working['Player'].map(maps_dict['Salary_map'])
447
- goalie_working['Proj Own'] = goalie_working['Player'].map(maps_dict['Own_map']) / 100
448
  goalie_working['Exposure'] = goalie_working['Freq']/(1000)
449
  goalie_working['Edge'] = goalie_working['Exposure'] - goalie_working['Proj Own']
450
- goalie_working['Team'] = goalie_working['Player'].map(maps_dict['Team_map'])
451
  st.session_state.goalie_freq = goalie_working.copy()
452
 
453
  if sim_site_var1 == 'Draftkings':
@@ -538,7 +538,7 @@ with tab1:
538
  with tab2:
539
  if 'Sim_Winner_Display' in st.session_state:
540
  # Apply position mapping to FLEX column
541
- flex_positions = st.session_state.freq_copy['FLEX'].map(maps_dict['Pos_map'])
542
 
543
  # Count occurrences of each position in FLEX
544
  flex_counts = flex_positions.value_counts()
 
278
  with col2:
279
  if st.button("Run Contest Sim"):
280
  if 'working_seed' in st.session_state:
281
+ st.session_state.maps_dict = {
282
  'Projection_map':dict(zip(raw_baselines.Player,raw_baselines.Median)),
283
  'Salary_map':dict(zip(raw_baselines.Player,raw_baselines.Salary)),
284
  'Pos_map':dict(zip(raw_baselines.Player,raw_baselines.Position)),
 
367
  freq_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,0:9].values, return_counts=True)),
368
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
369
  freq_working['Freq'] = freq_working['Freq'].astype(int)
370
+ freq_working['Position'] = freq_working['Player'].map(st.session_state.maps_dict['Pos_map'])
371
+ freq_working['Salary'] = freq_working['Player'].map(st.session_state.maps_dict['Salary_map'])
372
+ freq_working['Proj Own'] = freq_working['Player'].map(st.session_state.maps_dict['Own_map']) / 100
373
  freq_working['Exposure'] = freq_working['Freq']/(1000)
374
  freq_working['Edge'] = freq_working['Exposure'] - freq_working['Proj Own']
375
+ freq_working['Team'] = freq_working['Player'].map(st.session_state.maps_dict['Team_map'])
376
  st.session_state.player_freq = freq_working.copy()
377
 
378
  if sim_site_var1 == 'Draftkings':
 
382
  center_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,0:2].values, return_counts=True)),
383
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
384
  center_working['Freq'] = center_working['Freq'].astype(int)
385
+ center_working['Position'] = center_working['Player'].map(st.session_state.maps_dict['Pos_map'])
386
+ center_working['Salary'] = center_working['Player'].map(st.session_state.maps_dict['Salary_map'])
387
+ center_working['Proj Own'] = center_working['Player'].map(st.session_state.maps_dict['Own_map']) / 100
388
  center_working['Exposure'] = center_working['Freq']/(1000)
389
  center_working['Edge'] = center_working['Exposure'] - center_working['Proj Own']
390
+ center_working['Team'] = center_working['Player'].map(st.session_state.maps_dict['Team_map'])
391
  st.session_state.center_freq = center_working.copy()
392
 
393
  if sim_site_var1 == 'Draftkings':
 
397
  wing_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,2:4].values, return_counts=True)),
398
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
399
  wing_working['Freq'] = wing_working['Freq'].astype(int)
400
+ wing_working['Position'] = wing_working['Player'].map(st.session_state.maps_dict['Pos_map'])
401
+ wing_working['Salary'] = wing_working['Player'].map(st.session_state.maps_dict['Salary_map'])
402
+ wing_working['Proj Own'] = wing_working['Player'].map(st.session_state.maps_dict['Own_map']) / 100
403
  wing_working['Exposure'] = wing_working['Freq']/(1000)
404
  wing_working['Edge'] = wing_working['Exposure'] - wing_working['Proj Own']
405
+ wing_working['Team'] = wing_working['Player'].map(st.session_state.maps_dict['Team_map'])
406
  st.session_state.wing_freq = wing_working.copy()
407
 
408
  if sim_site_var1 == 'Draftkings':
 
412
  dmen_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,4:6].values, return_counts=True)),
413
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
414
  dmen_working['Freq'] = dmen_working['Freq'].astype(int)
415
+ dmen_working['Position'] = dmen_working['Player'].map(st.session_state.maps_dict['Pos_map'])
416
+ dmen_working['Salary'] = dmen_working['Player'].map(st.session_state.maps_dict['Salary_map'])
417
+ dmen_working['Proj Own'] = dmen_working['Player'].map(st.session_state.maps_dict['Own_map']) / 100
418
  dmen_working['Exposure'] = dmen_working['Freq']/(1000)
419
  dmen_working['Edge'] = dmen_working['Exposure'] - dmen_working['Proj Own']
420
+ dmen_working['Team'] = dmen_working['Player'].map(st.session_state.maps_dict['Team_map'])
421
  st.session_state.dmen_freq = dmen_working.copy()
422
 
423
  if sim_site_var1 == 'Draftkings':
 
427
  flex_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,6:8].values, return_counts=True)),
428
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
429
  flex_working['Freq'] = flex_working['Freq'].astype(int)
430
+ flex_working['Position'] = flex_working['Player'].map(st.session_state.maps_dict['Pos_map'])
431
+ flex_working['Salary'] = flex_working['Player'].map(st.session_state.maps_dict['Salary_map'])
432
+ flex_working['Proj Own'] = flex_working['Player'].map(st.session_state.maps_dict['Own_map']) / 100
433
  flex_working['Exposure'] = flex_working['Freq']/(1000)
434
  flex_working['Edge'] = flex_working['Exposure'] - flex_working['Proj Own']
435
+ flex_working['Team'] = flex_working['Player'].map(st.session_state.maps_dict['Team_map'])
436
  st.session_state.flex_freq = flex_working.copy()
437
 
438
  if sim_site_var1 == 'Draftkings':
 
442
  goalie_working = pd.DataFrame(np.column_stack(np.unique(st.session_state.freq_copy.iloc[:,8:9].values, return_counts=True)),
443
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
444
  goalie_working['Freq'] = goalie_working['Freq'].astype(int)
445
+ goalie_working['Position'] = goalie_working['Player'].map(st.session_state.maps_dict['Pos_map'])
446
+ goalie_working['Salary'] = goalie_working['Player'].map(st.session_state.maps_dict['Salary_map'])
447
+ goalie_working['Proj Own'] = goalie_working['Player'].map(st.session_state.maps_dict['Own_map']) / 100
448
  goalie_working['Exposure'] = goalie_working['Freq']/(1000)
449
  goalie_working['Edge'] = goalie_working['Exposure'] - goalie_working['Proj Own']
450
+ goalie_working['Team'] = goalie_working['Player'].map(st.session_state.maps_dict['Team_map'])
451
  st.session_state.goalie_freq = goalie_working.copy()
452
 
453
  if sim_site_var1 == 'Draftkings':
 
538
  with tab2:
539
  if 'Sim_Winner_Display' in st.session_state:
540
  # Apply position mapping to FLEX column
541
+ flex_positions = st.session_state.freq_copy['FLEX'].map(st.session_state.maps_dict['Pos_map'])
542
 
543
  # Count occurrences of each position in FLEX
544
  flex_counts = flex_positions.value_counts()