James McCool commited on
Commit
34bb742
·
1 Parent(s): fc682f1

Remove ownership calculation and related columns from Sim_Winner_Frame in Streamlit app for streamlined data processing.

Browse files
Files changed (1) hide show
  1. src/streamlit_app.py +1 -45
src/streamlit_app.py CHANGED
@@ -615,55 +615,11 @@ if selected_tab == "Showdown Contest Sims":
615
  Sim_Winner_Frame = pd.DataFrame(np.concatenate(Sim_Winners), columns=column_names + ['Fantasy'])
616
  Sim_Winner_Frame['GPP_Proj'] = (Sim_Winner_Frame['proj'] + Sim_Winner_Frame['Fantasy']) / 2
617
  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)
618
- # Add percent rank columns for ownership at each roster position
619
- # Calculate Dupes column for Fanduel
620
- 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']
621
- own_columns = ['CPT_Own', 'FLEX1_Own', 'FLEX2_Own', 'FLEX3_Own', 'FLEX4_Own', 'FLEX5_Own']
622
- calc_columns = ['own_product', 'avg_own_rank', 'dupes_calc']
623
- Sim_Winner_Frame['CPT_Own_percent_rank'] = Sim_Winner_Frame.iloc[:,0].map(maps_dict['cpt_Own_map']).rank(pct=True)
624
- Sim_Winner_Frame['FLEX1_Own_percent_rank'] = Sim_Winner_Frame.iloc[:,1].map(maps_dict['Own_map']).rank(pct=True)
625
- Sim_Winner_Frame['FLEX2_Own_percent_rank'] = Sim_Winner_Frame.iloc[:,2].map(maps_dict['Own_map']).rank(pct=True)
626
- Sim_Winner_Frame['FLEX3_Own_percent_rank'] = Sim_Winner_Frame.iloc[:,3].map(maps_dict['Own_map']).rank(pct=True)
627
- Sim_Winner_Frame['FLEX4_Own_percent_rank'] = Sim_Winner_Frame.iloc[:,4].map(maps_dict['Own_map']).rank(pct=True)
628
- Sim_Winner_Frame['FLEX5_Own_percent_rank'] = Sim_Winner_Frame.iloc[:,5].map(maps_dict['Own_map']).rank(pct=True)
629
- Sim_Winner_Frame['CPT_Own'] = Sim_Winner_Frame.iloc[:,0].map(maps_dict['cpt_Own_map']) / 100
630
- Sim_Winner_Frame['FLEX1_Own'] = Sim_Winner_Frame.iloc[:,1].map(maps_dict['Own_map']) / 100
631
- Sim_Winner_Frame['FLEX2_Own'] = Sim_Winner_Frame.iloc[:,2].map(maps_dict['Own_map']) / 100
632
- Sim_Winner_Frame['FLEX3_Own'] = Sim_Winner_Frame.iloc[:,3].map(maps_dict['Own_map']) / 100
633
- Sim_Winner_Frame['FLEX4_Own'] = Sim_Winner_Frame.iloc[:,4].map(maps_dict['Own_map']) / 100
634
- Sim_Winner_Frame['FLEX5_Own'] = Sim_Winner_Frame.iloc[:,5].map(maps_dict['Own_map']) / 100
635
-
636
- # Calculate ownership product and convert to probability
637
- Sim_Winner_Frame['own_product'] = (Sim_Winner_Frame[own_columns].product(axis=1))
638
-
639
- # Calculate average of ownership percent rank columns
640
- Sim_Winner_Frame['avg_own_rank'] = Sim_Winner_Frame[dup_count_columns].mean(axis=1)
641
-
642
- # Calculate dupes formula
643
- Sim_Winner_Frame['dupes_calc'] = ((Sim_Winner_Frame['own_product'] * Sim_Winner_Frame['avg_own_rank']) * (Contest_Size * 1.5)) + ((Sim_Winner_Frame['salary'] - 49800) / 100)
644
-
645
- # Round and handle negative values
646
- Sim_Winner_Frame['Dupes'] = np.where(
647
- np.round(Sim_Winner_Frame['dupes_calc'], 0) <= 0,
648
- 0,
649
- np.round(Sim_Winner_Frame['dupes_calc'], 0) - 1
650
- )
651
- Sim_Winner_Frame['Dupes'] = (Sim_Winner_Frame['Dupes'] * (500000 / sharp_split)) / 2
652
-
653
- Sim_Winner_Frame['Dupes'] = np.round(Sim_Winner_Frame['Dupes'], 0)
654
- Sim_Winner_Frame['Dupes'] = np.where(
655
- np.round(Sim_Winner_Frame['dupes_calc'], 0) <= 0,
656
- 0,
657
- np.round(Sim_Winner_Frame['dupes_calc'], 0)
658
- )
659
- Sim_Winner_Frame = Sim_Winner_Frame.drop(columns=dup_count_columns)
660
- Sim_Winner_Frame = Sim_Winner_Frame.drop(columns=own_columns)
661
- Sim_Winner_Frame = Sim_Winner_Frame.drop(columns=calc_columns)
662
 
663
  Sim_Winner_Frame = Sim_Winner_Frame.assign(win_count=Sim_Winner_Frame['unique_id'].map(Sim_Winner_Frame['unique_id'].value_counts()))
664
 
665
  # Type Casting
666
- type_cast_dict = {'salary': int, 'proj': np.float16, 'Fantasy': np.float16, 'GPP_Proj': np.float32, 'Own': np.float32, 'Dupes': int}
667
  Sim_Winner_Frame = Sim_Winner_Frame.astype(type_cast_dict)
668
 
669
  # Sorting
 
615
  Sim_Winner_Frame = pd.DataFrame(np.concatenate(Sim_Winners), columns=column_names + ['Fantasy'])
616
  Sim_Winner_Frame['GPP_Proj'] = (Sim_Winner_Frame['proj'] + Sim_Winner_Frame['Fantasy']) / 2
617
  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)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
618
 
619
  Sim_Winner_Frame = Sim_Winner_Frame.assign(win_count=Sim_Winner_Frame['unique_id'].map(Sim_Winner_Frame['unique_id'].value_counts()))
620
 
621
  # Type Casting
622
+ type_cast_dict = {'salary': int, 'proj': np.float16, 'Fantasy': np.float16, 'GPP_Proj': np.float32, 'Own': np.float32}
623
  Sim_Winner_Frame = Sim_Winner_Frame.astype(type_cast_dict)
624
 
625
  # Sorting