Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -360,9 +360,9 @@ with tab6:
|
|
360 |
with col1:
|
361 |
game_select_var = st.selectbox('Select prop source', options = ['Aggregate', 'Pick6'])
|
362 |
if game_select_var == 'Aggregate':
|
363 |
-
prop_df = prop_frame[['Player', 'over_prop', 'over_line', 'under_line', 'prop_type']]
|
364 |
elif game_select_var == 'Pick6':
|
365 |
-
prop_df = pick_frame[['Full_name', 'over_prop', 'over_line', 'under_line', 'prop_type']]
|
366 |
prop_df.rename(columns={"Full_name": "Player"}, inplace = True)
|
367 |
st.download_button(
|
368 |
label="Download Prop Source",
|
@@ -381,17 +381,17 @@ with tab6:
|
|
381 |
for prop in all_sim_vars:
|
382 |
|
383 |
if game_select_var == 'Aggregate':
|
384 |
-
prop_df = prop_frame[['Player', 'over_prop', 'over_line', 'under_line', 'prop_type']]
|
385 |
elif game_select_var == 'Pick6':
|
386 |
-
prop_df = pick_frame[['Full_name', 'over_prop', 'over_line', 'under_line', 'prop_type']]
|
387 |
prop_df.rename(columns={"Full_name": "Player"}, inplace = True)
|
388 |
prop_df = prop_df.loc[prop_df['prop_type'] == prop]
|
389 |
-
prop_df = prop_df[['Player', 'over_prop', 'over_line', 'under_line']]
|
390 |
prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
|
391 |
prop_df = prop_df.loc[prop_df['Prop'] != 0]
|
392 |
st.table(prop_df)
|
393 |
-
prop_df['Over'] =
|
394 |
-
prop_df['Under'] =
|
395 |
df = pd.merge(overall_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
396 |
|
397 |
prop_dict = dict(zip(df.Player, df.Prop))
|
@@ -418,7 +418,7 @@ with tab6:
|
|
418 |
flex_file['Ceiling'] = flex_file['Median'] + (flex_file['Median'] * 1.75)
|
419 |
flex_file['STD'] = flex_file['Median'] / 4
|
420 |
flex_file['Prop'] = flex_file['Player'].map(prop_dict)
|
421 |
-
flex_file = flex_file[['Player', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD']]
|
422 |
|
423 |
hold_file = flex_file
|
424 |
overall_file = flex_file
|
@@ -429,12 +429,12 @@ with tab6:
|
|
429 |
for x in range(0,total_sims):
|
430 |
prop_file[x] = prop_file['Prop']
|
431 |
|
432 |
-
prop_file = prop_file.drop(['Player', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD'], axis=1)
|
433 |
|
434 |
for x in range(0,total_sims):
|
435 |
overall_file[x] = np.random.normal(overall_file['Median'],overall_file['STD'])
|
436 |
|
437 |
-
overall_file=overall_file.drop(['Player', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD'], axis=1)
|
438 |
|
439 |
players_only = hold_file[['Player']]
|
440 |
|
@@ -466,7 +466,7 @@ with tab6:
|
|
466 |
players_only['Player'] = hold_file[['Player']]
|
467 |
players_only['Team'] = players_only['Player'].map(team_dict)
|
468 |
|
469 |
-
leg_outcomes = players_only[['Player', 'Team', 'Prop type', 'Prop', 'Mean_Outcome', 'Imp Over', 'Over%', 'Imp Under', 'Under%', 'Bet?', 'Edge']]
|
470 |
sim_all_hold = pd.concat([sim_all_hold, leg_outcomes], ignore_index=True)
|
471 |
|
472 |
final_outcomes = sim_all_hold
|
@@ -474,9 +474,9 @@ with tab6:
|
|
474 |
elif prop_type_var != 'All Props':
|
475 |
|
476 |
if game_select_var == 'Aggregate':
|
477 |
-
prop_df = prop_frame[['Player', 'over_prop', 'over_line', 'under_line', 'prop_type']]
|
478 |
elif game_select_var == 'Pick6':
|
479 |
-
prop_df = pick_frame[['Full_name', 'over_prop', 'over_line', 'under_line', 'prop_type']]
|
480 |
prop_df.rename(columns={"Full_name": "Player"}, inplace = True)
|
481 |
|
482 |
if prop_type_var == "pass_yards":
|
@@ -485,8 +485,8 @@ with tab6:
|
|
485 |
prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
|
486 |
prop_df = prop_df.loc[prop_df['Prop'] != 0]
|
487 |
st.table(prop_df)
|
488 |
-
prop_df['Over'] =
|
489 |
-
prop_df['Under'] =
|
490 |
df = pd.merge(overall_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
491 |
elif prop_type_var == "rush_yards":
|
492 |
prop_df = prop_df.loc[prop_df['prop_type'] == 'NFL_GAME_PLAYER_RUSHING_YARDS']
|
@@ -494,8 +494,8 @@ with tab6:
|
|
494 |
prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
|
495 |
prop_df = prop_df.loc[prop_df['Prop'] != 0]
|
496 |
st.table(prop_df)
|
497 |
-
prop_df['Over'] =
|
498 |
-
prop_df['Under'] =
|
499 |
df = pd.merge(overall_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
500 |
elif prop_type_var == "rec_yards":
|
501 |
prop_df = prop_df.loc[prop_df['prop_type'] == 'NFL_GAME_PLAYER_RECEIVING_YARDS']
|
@@ -503,8 +503,8 @@ with tab6:
|
|
503 |
prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
|
504 |
prop_df = prop_df.loc[prop_df['Prop'] != 0]
|
505 |
st.table(prop_df)
|
506 |
-
prop_df['Over'] =
|
507 |
-
prop_df['Under'] =
|
508 |
df = pd.merge(overall_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
509 |
elif prop_type_var == "receptions":
|
510 |
prop_df = prop_df.loc[prop_df['prop_type'] == 'NFL_GAME_PLAYER_RECEIVING_RECEPTIONS']
|
@@ -512,8 +512,8 @@ with tab6:
|
|
512 |
prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
|
513 |
prop_df = prop_df.loc[prop_df['Prop'] != 0]
|
514 |
st.table(prop_df)
|
515 |
-
prop_df['Over'] =
|
516 |
-
prop_df['Under'] =
|
517 |
df = pd.merge(overall_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
518 |
elif prop_type_var == "rush_attempts":
|
519 |
prop_df = prop_df.loc[prop_df['prop_type'] == 'NFL_GAME_PLAYER_RUSHING_ATTEMPTS']
|
@@ -521,8 +521,8 @@ with tab6:
|
|
521 |
prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
|
522 |
prop_df = prop_df.loc[prop_df['Prop'] != 0]
|
523 |
st.table(prop_df)
|
524 |
-
prop_df['Over'] =
|
525 |
-
prop_df['Under'] =
|
526 |
df = pd.merge(overall_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
527 |
elif prop_type_var == "pass_attempts":
|
528 |
prop_df = prop_df.loc[prop_df['prop_type'] == 'NFL_GAME_PLAYER_PASSING_ATTEMPTS']
|
@@ -530,8 +530,8 @@ with tab6:
|
|
530 |
prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
|
531 |
prop_df = prop_df.loc[prop_df['Prop'] != 0]
|
532 |
st.table(prop_df)
|
533 |
-
prop_df['Over'] =
|
534 |
-
prop_df['Under'] =
|
535 |
df = pd.merge(overall_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
536 |
elif prop_type_var == "pass_completions":
|
537 |
prop_df = prop_df.loc[prop_df['prop_type'] == 'NFL_GAME_PLAYER_PASSING_COMPLETIONS']
|
@@ -539,8 +539,8 @@ with tab6:
|
|
539 |
prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
|
540 |
prop_df = prop_df.loc[prop_df['Prop'] != 0]
|
541 |
st.table(prop_df)
|
542 |
-
prop_df['Over'] =
|
543 |
-
prop_df['Under'] =
|
544 |
df = pd.merge(overall_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
545 |
|
546 |
prop_dict = dict(zip(df.Player, df.Prop))
|
@@ -567,7 +567,7 @@ with tab6:
|
|
567 |
flex_file['Ceiling'] = flex_file['Median'] + (flex_file['Median'] * 1.75)
|
568 |
flex_file['STD'] = flex_file['Median'] / 4
|
569 |
flex_file['Prop'] = flex_file['Player'].map(prop_dict)
|
570 |
-
flex_file = flex_file[['Player', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD']]
|
571 |
|
572 |
hold_file = flex_file
|
573 |
overall_file = flex_file
|
@@ -578,12 +578,12 @@ with tab6:
|
|
578 |
for x in range(0,total_sims):
|
579 |
prop_file[x] = prop_file['Prop']
|
580 |
|
581 |
-
prop_file = prop_file.drop(['Player', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD'], axis=1)
|
582 |
|
583 |
for x in range(0,total_sims):
|
584 |
overall_file[x] = np.random.normal(overall_file['Median'],overall_file['STD'])
|
585 |
|
586 |
-
overall_file=overall_file.drop(['Player', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD'], axis=1)
|
587 |
|
588 |
players_only = hold_file[['Player']]
|
589 |
|
@@ -614,7 +614,7 @@ with tab6:
|
|
614 |
players_only['Player'] = hold_file[['Player']]
|
615 |
players_only['Team'] = players_only['Player'].map(team_dict)
|
616 |
|
617 |
-
final_outcomes = players_only[['Player', 'Team', 'Prop', 'Mean_Outcome', 'Imp Over', 'Over%', 'Imp Under', 'Under%', 'Bet?', 'Edge']]
|
618 |
|
619 |
final_outcomes = final_outcomes.sort_values(by='Edge', ascending=False)
|
620 |
|
|
|
360 |
with col1:
|
361 |
game_select_var = st.selectbox('Select prop source', options = ['Aggregate', 'Pick6'])
|
362 |
if game_select_var == 'Aggregate':
|
363 |
+
prop_df = prop_frame[['Player', 'book', 'over_prop', 'over_line', 'under_line', 'prop_type']]
|
364 |
elif game_select_var == 'Pick6':
|
365 |
+
prop_df = pick_frame[['Full_name', 'book', 'over_prop', 'over_line', 'under_line', 'prop_type']]
|
366 |
prop_df.rename(columns={"Full_name": "Player"}, inplace = True)
|
367 |
st.download_button(
|
368 |
label="Download Prop Source",
|
|
|
381 |
for prop in all_sim_vars:
|
382 |
|
383 |
if game_select_var == 'Aggregate':
|
384 |
+
prop_df = prop_frame[['Player', 'book', 'over_prop', 'over_line', 'under_line', 'prop_type']]
|
385 |
elif game_select_var == 'Pick6':
|
386 |
+
prop_df = pick_frame[['Full_name', 'book', 'over_prop', 'over_line', 'under_line', 'prop_type']]
|
387 |
prop_df.rename(columns={"Full_name": "Player"}, inplace = True)
|
388 |
prop_df = prop_df.loc[prop_df['prop_type'] == prop]
|
389 |
+
prop_df = prop_df[['Player', 'book', 'over_prop', 'over_line', 'under_line']]
|
390 |
prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
|
391 |
prop_df = prop_df.loc[prop_df['Prop'] != 0]
|
392 |
st.table(prop_df)
|
393 |
+
prop_df['Over'] = 1 / prop_df['over_line']
|
394 |
+
prop_df['Under'] = 1 / prop_df['under_line']
|
395 |
df = pd.merge(overall_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
396 |
|
397 |
prop_dict = dict(zip(df.Player, df.Prop))
|
|
|
418 |
flex_file['Ceiling'] = flex_file['Median'] + (flex_file['Median'] * 1.75)
|
419 |
flex_file['STD'] = flex_file['Median'] / 4
|
420 |
flex_file['Prop'] = flex_file['Player'].map(prop_dict)
|
421 |
+
flex_file = flex_file[['Player', 'book', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD']]
|
422 |
|
423 |
hold_file = flex_file
|
424 |
overall_file = flex_file
|
|
|
429 |
for x in range(0,total_sims):
|
430 |
prop_file[x] = prop_file['Prop']
|
431 |
|
432 |
+
prop_file = prop_file.drop(['Player', 'book', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD'], axis=1)
|
433 |
|
434 |
for x in range(0,total_sims):
|
435 |
overall_file[x] = np.random.normal(overall_file['Median'],overall_file['STD'])
|
436 |
|
437 |
+
overall_file=overall_file.drop(['Player', 'book', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD'], axis=1)
|
438 |
|
439 |
players_only = hold_file[['Player']]
|
440 |
|
|
|
466 |
players_only['Player'] = hold_file[['Player']]
|
467 |
players_only['Team'] = players_only['Player'].map(team_dict)
|
468 |
|
469 |
+
leg_outcomes = players_only[['Player', 'Team', 'book', 'Prop type', 'Prop', 'Mean_Outcome', 'Imp Over', 'Over%', 'Imp Under', 'Under%', 'Bet?', 'Edge']]
|
470 |
sim_all_hold = pd.concat([sim_all_hold, leg_outcomes], ignore_index=True)
|
471 |
|
472 |
final_outcomes = sim_all_hold
|
|
|
474 |
elif prop_type_var != 'All Props':
|
475 |
|
476 |
if game_select_var == 'Aggregate':
|
477 |
+
prop_df = prop_frame[['Player', 'book', 'over_prop', 'over_line', 'under_line', 'prop_type']]
|
478 |
elif game_select_var == 'Pick6':
|
479 |
+
prop_df = pick_frame[['Full_name', 'book', 'over_prop', 'over_line', 'under_line', 'prop_type']]
|
480 |
prop_df.rename(columns={"Full_name": "Player"}, inplace = True)
|
481 |
|
482 |
if prop_type_var == "pass_yards":
|
|
|
485 |
prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
|
486 |
prop_df = prop_df.loc[prop_df['Prop'] != 0]
|
487 |
st.table(prop_df)
|
488 |
+
prop_df['Over'] = 1 / prop_df['over_line']
|
489 |
+
prop_df['Under'] = 1 / prop_df['under_line']
|
490 |
df = pd.merge(overall_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
491 |
elif prop_type_var == "rush_yards":
|
492 |
prop_df = prop_df.loc[prop_df['prop_type'] == 'NFL_GAME_PLAYER_RUSHING_YARDS']
|
|
|
494 |
prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
|
495 |
prop_df = prop_df.loc[prop_df['Prop'] != 0]
|
496 |
st.table(prop_df)
|
497 |
+
prop_df['Over'] = 1 / prop_df['over_line']
|
498 |
+
prop_df['Under'] = 1 / prop_df['under_line']
|
499 |
df = pd.merge(overall_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
500 |
elif prop_type_var == "rec_yards":
|
501 |
prop_df = prop_df.loc[prop_df['prop_type'] == 'NFL_GAME_PLAYER_RECEIVING_YARDS']
|
|
|
503 |
prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
|
504 |
prop_df = prop_df.loc[prop_df['Prop'] != 0]
|
505 |
st.table(prop_df)
|
506 |
+
prop_df['Over'] = 1 / prop_df['over_line']
|
507 |
+
prop_df['Under'] = 1 / prop_df['under_line']
|
508 |
df = pd.merge(overall_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
509 |
elif prop_type_var == "receptions":
|
510 |
prop_df = prop_df.loc[prop_df['prop_type'] == 'NFL_GAME_PLAYER_RECEIVING_RECEPTIONS']
|
|
|
512 |
prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
|
513 |
prop_df = prop_df.loc[prop_df['Prop'] != 0]
|
514 |
st.table(prop_df)
|
515 |
+
prop_df['Over'] = 1 / prop_df['over_line']
|
516 |
+
prop_df['Under'] = 1 / prop_df['under_line']
|
517 |
df = pd.merge(overall_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
518 |
elif prop_type_var == "rush_attempts":
|
519 |
prop_df = prop_df.loc[prop_df['prop_type'] == 'NFL_GAME_PLAYER_RUSHING_ATTEMPTS']
|
|
|
521 |
prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
|
522 |
prop_df = prop_df.loc[prop_df['Prop'] != 0]
|
523 |
st.table(prop_df)
|
524 |
+
prop_df['Over'] = 1 / prop_df['over_line']
|
525 |
+
prop_df['Under'] = 1 / prop_df['under_line']
|
526 |
df = pd.merge(overall_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
527 |
elif prop_type_var == "pass_attempts":
|
528 |
prop_df = prop_df.loc[prop_df['prop_type'] == 'NFL_GAME_PLAYER_PASSING_ATTEMPTS']
|
|
|
530 |
prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
|
531 |
prop_df = prop_df.loc[prop_df['Prop'] != 0]
|
532 |
st.table(prop_df)
|
533 |
+
prop_df['Over'] = 1 / prop_df['over_line']
|
534 |
+
prop_df['Under'] = 1 / prop_df['under_line']
|
535 |
df = pd.merge(overall_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
536 |
elif prop_type_var == "pass_completions":
|
537 |
prop_df = prop_df.loc[prop_df['prop_type'] == 'NFL_GAME_PLAYER_PASSING_COMPLETIONS']
|
|
|
539 |
prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
|
540 |
prop_df = prop_df.loc[prop_df['Prop'] != 0]
|
541 |
st.table(prop_df)
|
542 |
+
prop_df['Over'] = 1 / prop_df['over_line']
|
543 |
+
prop_df['Under'] = 1 / prop_df['under_line']
|
544 |
df = pd.merge(overall_stats, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
545 |
|
546 |
prop_dict = dict(zip(df.Player, df.Prop))
|
|
|
567 |
flex_file['Ceiling'] = flex_file['Median'] + (flex_file['Median'] * 1.75)
|
568 |
flex_file['STD'] = flex_file['Median'] / 4
|
569 |
flex_file['Prop'] = flex_file['Player'].map(prop_dict)
|
570 |
+
flex_file = flex_file[['Player', 'book', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD']]
|
571 |
|
572 |
hold_file = flex_file
|
573 |
overall_file = flex_file
|
|
|
578 |
for x in range(0,total_sims):
|
579 |
prop_file[x] = prop_file['Prop']
|
580 |
|
581 |
+
prop_file = prop_file.drop(['Player', 'book', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD'], axis=1)
|
582 |
|
583 |
for x in range(0,total_sims):
|
584 |
overall_file[x] = np.random.normal(overall_file['Median'],overall_file['STD'])
|
585 |
|
586 |
+
overall_file=overall_file.drop(['Player', 'book', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD'], axis=1)
|
587 |
|
588 |
players_only = hold_file[['Player']]
|
589 |
|
|
|
614 |
players_only['Player'] = hold_file[['Player']]
|
615 |
players_only['Team'] = players_only['Player'].map(team_dict)
|
616 |
|
617 |
+
final_outcomes = players_only[['Player', 'Team', 'book', 'Prop', 'Mean_Outcome', 'Imp Over', 'Over%', 'Imp Under', 'Under%', 'Bet?', 'Edge']]
|
618 |
|
619 |
final_outcomes = final_outcomes.sort_values(by='Edge', ascending=False)
|
620 |
|