James McCool commited on
Commit
7c3359a
·
1 Parent(s): bf5f1f3

Enhance ownership calculations in app.py by adding new columns for ownership metrics at each roster position. Implemented dupes calculation for FanDuel and DraftKings based on these metrics, improving the accuracy of player ownership analysis and contest lineup simulations.

Browse files
Files changed (1) hide show
  1. app.py +9 -2
app.py CHANGED
@@ -552,16 +552,23 @@ with tab1:
552
  Sim_Winner_Frame['unique_id'] = Sim_Winner_Frame['proj'].astype(str) + Sim_Winner_Frame['salary'].astype(str) + Sim_Winner_Frame['Team'].astype(str) + Sim_Winner_Frame['Secondary'].astype(str)
553
  # Add percent rank columns for ownership at each roster position
554
  dup_count_columns = ['CPT_Own_percent_rank', 'FLEX1_Own_percent_rank', 'FLEX2_Own_percent_rank', 'FLEX3_Own_percent_rank', 'FLEX4_Own_percent_rank', 'FLEX5_Own_percent_rank']
 
555
  Sim_Winner_Frame['CPT_Own_percent_rank'] = Sim_Winner_Frame.iloc[:,0].map(maps_dict['Own_map']).rank(pct=True)
556
  Sim_Winner_Frame['FLEX1_Own_percent_rank'] = Sim_Winner_Frame.iloc[:,1].map(maps_dict['Own_map']).rank(pct=True)
557
  Sim_Winner_Frame['FLEX2_Own_percent_rank'] = Sim_Winner_Frame.iloc[:,2].map(maps_dict['Own_map']).rank(pct=True)
558
  Sim_Winner_Frame['FLEX3_Own_percent_rank'] = Sim_Winner_Frame.iloc[:,3].map(maps_dict['Own_map']).rank(pct=True)
559
  Sim_Winner_Frame['FLEX4_Own_percent_rank'] = Sim_Winner_Frame.iloc[:,4].map(maps_dict['Own_map']).rank(pct=True)
560
  Sim_Winner_Frame['FLEX5_Own_percent_rank'] = Sim_Winner_Frame.iloc[:,5].map(maps_dict['Own_map']).rank(pct=True)
 
 
 
 
 
 
561
  # Calculate Dupes column for Fanduel
562
  if sim_site_var1 == 'Fanduel':
563
  # Calculate ownership product and convert to probability
564
- own_product = (Sim_Winner_Frame['Own'].product() / 100) + 0.0001
565
 
566
  # Calculate average of ownership percent rank columns
567
  avg_own_rank = Sim_Winner_Frame[dup_count_columns].mean(axis=1)
@@ -577,7 +584,7 @@ with tab1:
577
  )
578
  elif sim_site_var1 == 'Draftkings':
579
  # Calculate ownership product and convert to probability
580
- own_product = (Sim_Winner_Frame['Own'].product() / 100)
581
 
582
  # Calculate average of ownership percent rank columns
583
  avg_own_rank = Sim_Winner_Frame[dup_count_columns].mean(axis=1)
 
552
  Sim_Winner_Frame['unique_id'] = Sim_Winner_Frame['proj'].astype(str) + Sim_Winner_Frame['salary'].astype(str) + Sim_Winner_Frame['Team'].astype(str) + Sim_Winner_Frame['Secondary'].astype(str)
553
  # Add percent rank columns for ownership at each roster position
554
  dup_count_columns = ['CPT_Own_percent_rank', 'FLEX1_Own_percent_rank', 'FLEX2_Own_percent_rank', 'FLEX3_Own_percent_rank', 'FLEX4_Own_percent_rank', 'FLEX5_Own_percent_rank']
555
+ own_columns = ['CPT_Own', 'FLEX1_Own', 'FLEX2_Own', 'FLEX3_Own', 'FLEX4_Own', 'FLEX5_Own']
556
  Sim_Winner_Frame['CPT_Own_percent_rank'] = Sim_Winner_Frame.iloc[:,0].map(maps_dict['Own_map']).rank(pct=True)
557
  Sim_Winner_Frame['FLEX1_Own_percent_rank'] = Sim_Winner_Frame.iloc[:,1].map(maps_dict['Own_map']).rank(pct=True)
558
  Sim_Winner_Frame['FLEX2_Own_percent_rank'] = Sim_Winner_Frame.iloc[:,2].map(maps_dict['Own_map']).rank(pct=True)
559
  Sim_Winner_Frame['FLEX3_Own_percent_rank'] = Sim_Winner_Frame.iloc[:,3].map(maps_dict['Own_map']).rank(pct=True)
560
  Sim_Winner_Frame['FLEX4_Own_percent_rank'] = Sim_Winner_Frame.iloc[:,4].map(maps_dict['Own_map']).rank(pct=True)
561
  Sim_Winner_Frame['FLEX5_Own_percent_rank'] = Sim_Winner_Frame.iloc[:,5].map(maps_dict['Own_map']).rank(pct=True)
562
+ Sim_Winner_Frame['CPT_Own'] = Sim_Winner_Frame.iloc[:,0].map(maps_dict['Own_map'])
563
+ Sim_Winner_Frame['FLEX1_Own'] = Sim_Winner_Frame.iloc[:,1].map(maps_dict['Own_map'])
564
+ Sim_Winner_Frame['FLEX2_Own'] = Sim_Winner_Frame.iloc[:,2].map(maps_dict['Own_map'])
565
+ Sim_Winner_Frame['FLEX3_Own'] = Sim_Winner_Frame.iloc[:,3].map(maps_dict['Own_map'])
566
+ Sim_Winner_Frame['FLEX4_Own'] = Sim_Winner_Frame.iloc[:,4].map(maps_dict['Own_map'])
567
+ Sim_Winner_Frame['FLEX5_Own'] = Sim_Winner_Frame.iloc[:,5].map(maps_dict['Own_map'])
568
  # Calculate Dupes column for Fanduel
569
  if sim_site_var1 == 'Fanduel':
570
  # Calculate ownership product and convert to probability
571
+ own_product = (Sim_Winner_Frame[own_columns].product(axis=1) / 100) + 0.0001
572
 
573
  # Calculate average of ownership percent rank columns
574
  avg_own_rank = Sim_Winner_Frame[dup_count_columns].mean(axis=1)
 
584
  )
585
  elif sim_site_var1 == 'Draftkings':
586
  # Calculate ownership product and convert to probability
587
+ own_product = (Sim_Winner_Frame[own_columns].product(axis=1) / 100)
588
 
589
  # Calculate average of ownership percent rank columns
590
  avg_own_rank = Sim_Winner_Frame[dup_count_columns].mean(axis=1)