Spaces:
Sleeping
Sleeping
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
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[
|
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[
|
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)
|