James McCool commited on
Commit
5b60329
·
1 Parent(s): b6fa50a

Finished Pick6 implementation

Browse files
Files changed (1) hide show
  1. app.py +26 -20
app.py CHANGED
@@ -58,6 +58,7 @@ prop_format = {'L5 Success': '{:.2%}', 'L10_Success': '{:.2%}', 'L20_success': '
58
  'Implied Over': '{:.2%}', 'Implied Under': '{:.2%}', 'Over Edge': '{:.2%}', 'Under Edge': '{:.2%}'}
59
  prop_table_options = ['NBA_GAME_PLAYER_POINTS', 'NBA_GAME_PLAYER_REBOUNDS', 'NBA_GAME_PLAYER_ASSISTS', 'NBA_GAME_PLAYER_3_POINTERS_MADE', 'NBA_GAME_PLAYER_POINTS_REBOUNDS_ASSISTS', 'NBA_GAME_PLAYER_POINTS_REBOUNDS', 'NBA_GAME_PLAYER_POINTS_ASSISTS', 'NBA_GAME_PLAYER_REBOUNDS_ASSISTS']
60
  all_sim_vars = ['NBA_GAME_PLAYER_POINTS', 'NBA_GAME_PLAYER_REBOUNDS', 'NBA_GAME_PLAYER_ASSISTS', 'NBA_GAME_PLAYER_3_POINTERS_MADE', 'NBA_GAME_PLAYER_POINTS_REBOUNDS_ASSISTS', 'NBA_GAME_PLAYER_POINTS_REBOUNDS', 'NBA_GAME_PLAYER_POINTS_ASSISTS', 'NBA_GAME_PLAYER_REBOUNDS_ASSISTS']
 
61
  sim_all_hold = pd.DataFrame(columns=['Player', 'Team', 'Book', 'Prop Type', 'Prop', 'Mean_Outcome', 'Imp Over', 'Over%', 'Imp Under', 'Under%', 'Bet?', 'Edge'])
62
 
63
  def add_column(df):
@@ -393,14 +394,21 @@ with tab5:
393
  mime='text/csv',
394
  key='prop_source',
395
  )
396
- prop_type_var = st.selectbox('Select prop category', options = ['All Props', 'NBA_GAME_PLAYER_POINTS', 'NBA_GAME_PLAYER_REBOUNDS', 'NBA_GAME_PLAYER_ASSISTS', 'NBA_GAME_PLAYER_3_POINTERS_MADE', 'NBA_GAME_PLAYER_POINTS_REBOUNDS_ASSISTS', 'NBA_GAME_PLAYER_POINTS_REBOUNDS', 'NBA_GAME_PLAYER_POINTS_ASSISTS', 'NBA_GAME_PLAYER_REBOUNDS_ASSISTS'])
 
 
 
397
 
398
  if st.button('Simulate Prop Category'):
399
  with col2:
400
 
401
  with df_hold_container.container():
402
  if prop_type_var == 'All Props':
403
- for prop in all_sim_vars:
 
 
 
 
404
 
405
  if game_select_var == 'Aggregate':
406
  prop_df_raw = prop_frame[['Player', 'book', 'over_prop', 'over_line', 'under_line', 'prop_type']]
@@ -508,8 +516,6 @@ with tab5:
508
  final_outcomes = sim_all_hold
509
 
510
  elif prop_type_var != 'All Props':
511
-
512
-
513
  if game_select_var == 'Aggregate':
514
  prop_df_raw = prop_frame[['Player', 'book', 'over_prop', 'over_line', 'under_line', 'prop_type']]
515
  elif game_select_var == 'Pick6':
@@ -520,7 +526,7 @@ with tab5:
520
  if game_select_var == 'Pick6':
521
  books = 'Pick6'
522
  prop_df = prop_df_raw.loc[prop_df_raw['book'] == books]
523
- if prop_type_var == "NBA_GAME_PLAYER_POINTS":
524
  prop_df = prop_df.loc[prop_df['prop_type'] == 'NBA_GAME_PLAYER_POINTS']
525
  prop_df = prop_df[['Player', 'book', 'over_prop', 'over_line', 'under_line']]
526
  prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
@@ -529,7 +535,7 @@ with tab5:
529
  prop_df['Over'] = 1 / prop_df['over_line']
530
  prop_df['Under'] = 1 / prop_df['under_line']
531
  df = pd.merge(player_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
532
- elif prop_type_var == "NBA_GAME_PLAYER_REBOUNDS":
533
  prop_df = prop_df.loc[prop_df['prop_type'] == 'NBA_GAME_PLAYER_REBOUNDS']
534
  prop_df = prop_df[['Player', 'book', 'over_prop', 'over_line', 'under_line']]
535
  prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
@@ -538,7 +544,7 @@ with tab5:
538
  prop_df['Over'] = 1 / prop_df['over_line']
539
  prop_df['Under'] = 1 / prop_df['under_line']
540
  df = pd.merge(player_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
541
- elif prop_type_var == "NBA_GAME_PLAYER_ASSISTS":
542
  prop_df = prop_df.loc[prop_df['prop_type'] == 'NBA_GAME_PLAYER_ASSISTS']
543
  prop_df = prop_df[['Player', 'book', 'over_prop', 'over_line', 'under_line']]
544
  prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
@@ -547,7 +553,7 @@ with tab5:
547
  prop_df['Over'] = 1 / prop_df['over_line']
548
  prop_df['Under'] = 1 / prop_df['under_line']
549
  df = pd.merge(player_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
550
- elif prop_type_var == "NBA_GAME_PLAYER_3_POINTERS_MADE":
551
  prop_df = prop_df.loc[prop_df['prop_type'] == 'NBA_GAME_PLAYER_3_POINTERS_MADE']
552
  prop_df = prop_df[['Player', 'book', 'over_prop', 'over_line', 'under_line']]
553
  prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
@@ -556,7 +562,7 @@ with tab5:
556
  prop_df['Over'] = 1 / prop_df['over_line']
557
  prop_df['Under'] = 1 / prop_df['under_line']
558
  df = pd.merge(player_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
559
- elif prop_type_var == "NBA_GAME_PLAYER_POINTS_REBOUNDS_ASSISTS":
560
  prop_df = prop_df.loc[prop_df['prop_type'] == 'NBA_GAME_PLAYER_POINTS_REBOUNDS_ASSISTS']
561
  prop_df = prop_df[['Player', 'book', 'over_prop', 'over_line', 'under_line']]
562
  prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
@@ -565,7 +571,7 @@ with tab5:
565
  prop_df['Over'] = 1 / prop_df['over_line']
566
  prop_df['Under'] = 1 / prop_df['under_line']
567
  df = pd.merge(player_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
568
- elif prop_type_var == "NBA_GAME_PLAYER_POINTS_REBOUNDS":
569
  prop_df = prop_df.loc[prop_df['prop_type'] == 'NBA_GAME_PLAYER_POINTS_REBOUNDS']
570
  prop_df = prop_df[['Player', 'book', 'over_prop', 'over_line', 'under_line']]
571
  prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
@@ -574,7 +580,7 @@ with tab5:
574
  prop_df['Over'] = 1 / prop_df['over_line']
575
  prop_df['Under'] = 1 / prop_df['under_line']
576
  df = pd.merge(player_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
577
- elif prop_type_var == "NBA_GAME_PLAYER_POINTS_ASSISTS":
578
  prop_df = prop_df.loc[prop_df['prop_type'] == 'NBA_GAME_PLAYER_POINTS_ASSISTS']
579
  prop_df = prop_df[['Player', 'book', 'over_prop', 'over_line', 'under_line']]
580
  prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
@@ -583,7 +589,7 @@ with tab5:
583
  prop_df['Over'] = 1 / prop_df['over_line']
584
  prop_df['Under'] = 1 / prop_df['under_line']
585
  df = pd.merge(player_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
586
- elif prop_type_var == "NBA_GAME_PLAYER_REBOUNDS_ASSISTS":
587
  prop_df = prop_df.loc[prop_df['prop_type'] == 'NBA_GAME_PLAYER_REBOUNDS_ASSISTS']
588
  prop_df = prop_df[['Player', 'book', 'over_prop', 'over_line', 'under_line']]
589
  prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
@@ -603,21 +609,21 @@ with tab5:
603
 
604
  df.replace("", 0, inplace=True)
605
 
606
- if prop_type_var == "NBA_GAME_PLAYER_POINTS":
607
  df['Median'] = df['Points']
608
- elif prop_type_var == "NBA_GAME_PLAYER_REBOUNDS":
609
  df['Median'] = df['Rebounds']
610
- elif prop_type_var == "NBA_GAME_PLAYER_ASSISTS":
611
  df['Median'] = df['Assists']
612
- elif prop_type_var == "NBA_GAME_PLAYER_3_POINTERS_MADE":
613
  df['Median'] = df['3P']
614
- elif prop_type_var == "NBA_GAME_PLAYER_POINTS_REBOUNDS_ASSISTS":
615
  df['Median'] = df['PRA']
616
- elif prop_type_var == "NBA_GAME_PLAYER_POINTS_REBOUNDS":
617
  df['Median'] = df['Points'] + df['Rebounds']
618
- elif prop_type_var == "NBA_GAME_PLAYER_POINTS_ASSISTS":
619
  df['Median'] = df['Points'] + df['Assists']
620
- elif prop_type_var == "NBA_GAME_PLAYER_REBOUNDS_ASSISTS":
621
  df['Median'] = df['Rebounds'] + df['Assists']
622
 
623
  flex_file = df
 
58
  'Implied Over': '{:.2%}', 'Implied Under': '{:.2%}', 'Over Edge': '{:.2%}', 'Under Edge': '{:.2%}'}
59
  prop_table_options = ['NBA_GAME_PLAYER_POINTS', 'NBA_GAME_PLAYER_REBOUNDS', 'NBA_GAME_PLAYER_ASSISTS', 'NBA_GAME_PLAYER_3_POINTERS_MADE', 'NBA_GAME_PLAYER_POINTS_REBOUNDS_ASSISTS', 'NBA_GAME_PLAYER_POINTS_REBOUNDS', 'NBA_GAME_PLAYER_POINTS_ASSISTS', 'NBA_GAME_PLAYER_REBOUNDS_ASSISTS']
60
  all_sim_vars = ['NBA_GAME_PLAYER_POINTS', 'NBA_GAME_PLAYER_REBOUNDS', 'NBA_GAME_PLAYER_ASSISTS', 'NBA_GAME_PLAYER_3_POINTERS_MADE', 'NBA_GAME_PLAYER_POINTS_REBOUNDS_ASSISTS', 'NBA_GAME_PLAYER_POINTS_REBOUNDS', 'NBA_GAME_PLAYER_POINTS_ASSISTS', 'NBA_GAME_PLAYER_REBOUNDS_ASSISTS']
61
+ pick6_sim_vars = ['Points', 'Rebounds', 'Assists', '3-Pointers Made', 'Points + Assists + Rebounds', 'Points + Assists', 'Points + Rebounds', 'Assists + Rebounds']
62
  sim_all_hold = pd.DataFrame(columns=['Player', 'Team', 'Book', 'Prop Type', 'Prop', 'Mean_Outcome', 'Imp Over', 'Over%', 'Imp Under', 'Under%', 'Bet?', 'Edge'])
63
 
64
  def add_column(df):
 
394
  mime='text/csv',
395
  key='prop_source',
396
  )
397
+ if game_select_var == 'Aggregate':
398
+ prop_type_var = st.selectbox('Select prop category', options = ['All Props', 'NBA_GAME_PLAYER_POINTS', 'NBA_GAME_PLAYER_REBOUNDS', 'NBA_GAME_PLAYER_ASSISTS', 'NBA_GAME_PLAYER_3_POINTERS_MADE', 'NBA_GAME_PLAYER_POINTS_REBOUNDS_ASSISTS', 'NBA_GAME_PLAYER_POINTS_REBOUNDS', 'NBA_GAME_PLAYER_POINTS_ASSISTS', 'NBA_GAME_PLAYER_REBOUNDS_ASSISTS'])
399
+ elif game_select_var == 'Pick6':
400
+ prop_type_var = st.selectbox('Select prop category', options = ['All Props', 'Points', 'Rebounds', 'Assists', '3-Pointers Made', 'Points + Assists + Rebounds', 'Points + Assists', 'Points + Rebounds', 'Assists + Rebounds'])
401
 
402
  if st.button('Simulate Prop Category'):
403
  with col2:
404
 
405
  with df_hold_container.container():
406
  if prop_type_var == 'All Props':
407
+ if game_select_var == 'Aggregate':
408
+ sim_vars = ['NBA_GAME_PLAYER_POINTS', 'NBA_GAME_PLAYER_REBOUNDS', 'NBA_GAME_PLAYER_ASSISTS', 'NBA_GAME_PLAYER_3_POINTERS_MADE', 'NBA_GAME_PLAYER_POINTS_REBOUNDS_ASSISTS', 'NBA_GAME_PLAYER_POINTS_REBOUNDS', 'NBA_GAME_PLAYER_POINTS_ASSISTS', 'NBA_GAME_PLAYER_REBOUNDS_ASSISTS']
409
+ elif game_select_var == 'Pick6':
410
+ sim_vars = ['Points', 'Rebounds', 'Assists', '3-Pointers Made', 'Points + Assists + Rebounds', 'Points + Assists', 'Points + Rebounds', 'Assists + Rebounds']
411
+ for prop in sim_vars:
412
 
413
  if game_select_var == 'Aggregate':
414
  prop_df_raw = prop_frame[['Player', 'book', 'over_prop', 'over_line', 'under_line', 'prop_type']]
 
516
  final_outcomes = sim_all_hold
517
 
518
  elif prop_type_var != 'All Props':
 
 
519
  if game_select_var == 'Aggregate':
520
  prop_df_raw = prop_frame[['Player', 'book', 'over_prop', 'over_line', 'under_line', 'prop_type']]
521
  elif game_select_var == 'Pick6':
 
526
  if game_select_var == 'Pick6':
527
  books = 'Pick6'
528
  prop_df = prop_df_raw.loc[prop_df_raw['book'] == books]
529
+ if prop_type_var == "NBA_GAME_PLAYER_POINTS" or prop_type_var == "Points":
530
  prop_df = prop_df.loc[prop_df['prop_type'] == 'NBA_GAME_PLAYER_POINTS']
531
  prop_df = prop_df[['Player', 'book', 'over_prop', 'over_line', 'under_line']]
532
  prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
 
535
  prop_df['Over'] = 1 / prop_df['over_line']
536
  prop_df['Under'] = 1 / prop_df['under_line']
537
  df = pd.merge(player_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
538
+ elif prop_type_var == "NBA_GAME_PLAYER_REBOUNDS" or prop_type_var == "Rebounds":
539
  prop_df = prop_df.loc[prop_df['prop_type'] == 'NBA_GAME_PLAYER_REBOUNDS']
540
  prop_df = prop_df[['Player', 'book', 'over_prop', 'over_line', 'under_line']]
541
  prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
 
544
  prop_df['Over'] = 1 / prop_df['over_line']
545
  prop_df['Under'] = 1 / prop_df['under_line']
546
  df = pd.merge(player_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
547
+ elif prop_type_var == "NBA_GAME_PLAYER_ASSISTS" or prop_type_var == "Assists":
548
  prop_df = prop_df.loc[prop_df['prop_type'] == 'NBA_GAME_PLAYER_ASSISTS']
549
  prop_df = prop_df[['Player', 'book', 'over_prop', 'over_line', 'under_line']]
550
  prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
 
553
  prop_df['Over'] = 1 / prop_df['over_line']
554
  prop_df['Under'] = 1 / prop_df['under_line']
555
  df = pd.merge(player_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
556
+ elif prop_type_var == "NBA_GAME_PLAYER_3_POINTERS_MADE" or prop_type_var == "3-Pointers Made":
557
  prop_df = prop_df.loc[prop_df['prop_type'] == 'NBA_GAME_PLAYER_3_POINTERS_MADE']
558
  prop_df = prop_df[['Player', 'book', 'over_prop', 'over_line', 'under_line']]
559
  prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
 
562
  prop_df['Over'] = 1 / prop_df['over_line']
563
  prop_df['Under'] = 1 / prop_df['under_line']
564
  df = pd.merge(player_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
565
+ elif prop_type_var == "NBA_GAME_PLAYER_POINTS_REBOUNDS_ASSISTS" or prop_type_var == "Points + Rebounds + Assists":
566
  prop_df = prop_df.loc[prop_df['prop_type'] == 'NBA_GAME_PLAYER_POINTS_REBOUNDS_ASSISTS']
567
  prop_df = prop_df[['Player', 'book', 'over_prop', 'over_line', 'under_line']]
568
  prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
 
571
  prop_df['Over'] = 1 / prop_df['over_line']
572
  prop_df['Under'] = 1 / prop_df['under_line']
573
  df = pd.merge(player_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
574
+ elif prop_type_var == "NBA_GAME_PLAYER_POINTS_REBOUNDS" or prop_type_var == "Points + Rebounds":
575
  prop_df = prop_df.loc[prop_df['prop_type'] == 'NBA_GAME_PLAYER_POINTS_REBOUNDS']
576
  prop_df = prop_df[['Player', 'book', 'over_prop', 'over_line', 'under_line']]
577
  prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
 
580
  prop_df['Over'] = 1 / prop_df['over_line']
581
  prop_df['Under'] = 1 / prop_df['under_line']
582
  df = pd.merge(player_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
583
+ elif prop_type_var == "NBA_GAME_PLAYER_POINTS_ASSISTS" or prop_type_var == "Points + Assists":
584
  prop_df = prop_df.loc[prop_df['prop_type'] == 'NBA_GAME_PLAYER_POINTS_ASSISTS']
585
  prop_df = prop_df[['Player', 'book', 'over_prop', 'over_line', 'under_line']]
586
  prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
 
589
  prop_df['Over'] = 1 / prop_df['over_line']
590
  prop_df['Under'] = 1 / prop_df['under_line']
591
  df = pd.merge(player_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
592
+ elif prop_type_var == "NBA_GAME_PLAYER_REBOUNDS_ASSISTS" or prop_type_var == "Assists + Rebounds":
593
  prop_df = prop_df.loc[prop_df['prop_type'] == 'NBA_GAME_PLAYER_REBOUNDS_ASSISTS']
594
  prop_df = prop_df[['Player', 'book', 'over_prop', 'over_line', 'under_line']]
595
  prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
 
609
 
610
  df.replace("", 0, inplace=True)
611
 
612
+ if prop_type_var == "NBA_GAME_PLAYER_POINTS" or prop_type_var == "Points":
613
  df['Median'] = df['Points']
614
+ elif prop_type_var == "NBA_GAME_PLAYER_REBOUNDS" or prop_type_var == "Rebounds":
615
  df['Median'] = df['Rebounds']
616
+ elif prop_type_var == "NBA_GAME_PLAYER_ASSISTS" or prop_type_var == "Assists":
617
  df['Median'] = df['Assists']
618
+ elif prop_type_var == "NBA_GAME_PLAYER_3_POINTERS_MADE" or prop_type_var == "3-Pointers Made":
619
  df['Median'] = df['3P']
620
+ elif prop_type_var == "NBA_GAME_PLAYER_POINTS_REBOUNDS_ASSISTS" or prop_type_var == "Points + Rebounds + Assists":
621
  df['Median'] = df['PRA']
622
+ elif prop_type_var == "NBA_GAME_PLAYER_POINTS_REBOUNDS" or prop_type_var == "Points + Rebounds":
623
  df['Median'] = df['Points'] + df['Rebounds']
624
+ elif prop_type_var == "NBA_GAME_PLAYER_POINTS_ASSISTS" or prop_type_var == "Points + Assists":
625
  df['Median'] = df['Points'] + df['Assists']
626
+ elif prop_type_var == "NBA_GAME_PLAYER_REBOUNDS_ASSISTS" or prop_type_var == "Assists + Rebounds":
627
  df['Median'] = df['Rebounds'] + df['Assists']
628
 
629
  flex_file = df