Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -363,6 +363,33 @@ with tab5:
|
|
363 |
prop_df['Over'] = np.where(prop_df['over_line'] < 0, (-(prop_df['over_line'])/((-(prop_df['over_line']))+100)), 100/(prop_df['over_line']+100))
|
364 |
prop_df['Under'] = np.where(prop_df['under_line'] < 0, (-(prop_df['under_line'])/((-(prop_df['under_line']))+100)), 100/(prop_df['under_line']+100))
|
365 |
df = pd.merge(player_df, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
366 |
elif prop_type_var == "Total Bases (Hitters)":
|
367 |
player_df = hitter_stats
|
368 |
prop_df = prop_frame[prop_frame['prop_type'] == 'batter_total_bases']
|
@@ -381,6 +408,15 @@ with tab5:
|
|
381 |
prop_df['Over'] = np.where(prop_df['over_line'] < 0, (-(prop_df['over_line'])/((-(prop_df['over_line']))+100)), 100/(prop_df['over_line']+100))
|
382 |
prop_df['Under'] = np.where(prop_df['under_line'] < 0, (-(prop_df['under_line'])/((-(prop_df['under_line']))+100)), 100/(prop_df['under_line']+100))
|
383 |
df = pd.merge(player_df, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
384 |
|
385 |
prop_dict = dict(zip(df.Player, df.Prop))
|
386 |
over_dict = dict(zip(df.Player, df.Over))
|
@@ -392,8 +428,14 @@ with tab5:
|
|
392 |
|
393 |
if prop_type_var == "Strikeouts (Pitchers)":
|
394 |
df['Median'] = df['Ks']
|
|
|
|
|
395 |
elif prop_type_var == "Total Outs (Pitchers)":
|
396 |
df['Median'] = df['Outs']
|
|
|
|
|
|
|
|
|
397 |
elif prop_type_var == "Total Bases (Hitters)":
|
398 |
df['Median'] = df['Total Bases']
|
399 |
elif prop_type_var == "Stolen Bases (Hitters)":
|
@@ -402,28 +444,49 @@ with tab5:
|
|
402 |
flex_file = df
|
403 |
if prop_type_var == 'Strikeouts (Pitchers)':
|
404 |
flex_file['Floor'] = flex_file['Median'] * .20
|
405 |
-
flex_file['Ceiling'] = flex_file['Median']
|
406 |
flex_file['STD'] = flex_file['Median'] / 4
|
407 |
flex_file['Prop'] = flex_file['Player'].map(prop_dict)
|
408 |
flex_file = flex_file[['Player', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD']]
|
409 |
|
410 |
elif prop_type_var == 'Total Outs (Pitchers)':
|
411 |
flex_file['Floor'] = flex_file['Median'] * .20
|
412 |
-
flex_file['Ceiling'] = flex_file['Median']
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
413 |
flex_file['STD'] = flex_file['Median'] / 4
|
414 |
flex_file['Prop'] = flex_file['Player'].map(prop_dict)
|
415 |
flex_file = flex_file[['Player', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD']]
|
416 |
|
417 |
elif prop_type_var == 'Total Bases (Hitters)':
|
418 |
flex_file['Floor'] = np.where((prop_type_var == "Fantasy") | (prop_type_var == "FD_Fantasy") | (prop_type_var == "PrizePicks"), flex_file['Median'] * .20, 0)
|
419 |
-
flex_file['Ceiling'] = np.where((prop_type_var == "Fantasy") | (prop_type_var == "FD_Fantasy") | (prop_type_var == "PrizePicks"), flex_file['Median']
|
420 |
flex_file['STD'] = flex_file['Median'] / 1.5
|
421 |
flex_file['Prop'] = flex_file['Player'].map(prop_dict)
|
422 |
flex_file = flex_file[['Player', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD']]
|
423 |
|
424 |
elif prop_type_var == 'Stolen Bases (Hitters)':
|
425 |
flex_file['Floor'] = np.where((prop_type_var == "Fantasy") | (prop_type_var == "FD_Fantasy") | (prop_type_var == "PrizePicks"), flex_file['Median'] * .20, 0)
|
426 |
-
flex_file['Ceiling'] = np.where((prop_type_var == "Fantasy") | (prop_type_var == "FD_Fantasy") | (prop_type_var == "PrizePicks"), flex_file['Median']
|
427 |
flex_file['STD'] = flex_file['Median'] / 1.5
|
428 |
flex_file['Prop'] = flex_file['Player'].map(prop_dict)
|
429 |
flex_file = flex_file[['Player', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD']]
|
|
|
363 |
prop_df['Over'] = np.where(prop_df['over_line'] < 0, (-(prop_df['over_line'])/((-(prop_df['over_line']))+100)), 100/(prop_df['over_line']+100))
|
364 |
prop_df['Under'] = np.where(prop_df['under_line'] < 0, (-(prop_df['under_line'])/((-(prop_df['under_line']))+100)), 100/(prop_df['under_line']+100))
|
365 |
df = pd.merge(player_df, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
366 |
+
elif prop_type_var == "Earned Runs (Pitchers)":
|
367 |
+
player_df = pitcher_stats
|
368 |
+
prop_df = prop_frame[prop_frame['prop_type'] == 'pitcher_earned_runs']
|
369 |
+
prop_df = prop_df[['Player', 'over_prop', 'over_line', 'under_line']]
|
370 |
+
prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
|
371 |
+
prop_df = prop_df.loc[prop_df['Prop'] != 0]
|
372 |
+
prop_df['Over'] = np.where(prop_df['over_line'] < 0, (-(prop_df['over_line'])/((-(prop_df['over_line']))+100)), 100/(prop_df['over_line']+100))
|
373 |
+
prop_df['Under'] = np.where(prop_df['under_line'] < 0, (-(prop_df['under_line'])/((-(prop_df['under_line']))+100)), 100/(prop_df['under_line']+100))
|
374 |
+
df = pd.merge(player_df, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
375 |
+
elif prop_type_var == "Hits Against (Pitchers)":
|
376 |
+
player_df = pitcher_stats
|
377 |
+
prop_df = prop_frame[prop_frame['prop_type'] == 'pitcher_hits_allowed']
|
378 |
+
prop_df = prop_df[['Player', 'over_prop', 'over_line', 'under_line']]
|
379 |
+
prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
|
380 |
+
prop_df = prop_df.loc[prop_df['Prop'] != 0]
|
381 |
+
prop_df['Over'] = np.where(prop_df['over_line'] < 0, (-(prop_df['over_line'])/((-(prop_df['over_line']))+100)), 100/(prop_df['over_line']+100))
|
382 |
+
prop_df['Under'] = np.where(prop_df['under_line'] < 0, (-(prop_df['under_line'])/((-(prop_df['under_line']))+100)), 100/(prop_df['under_line']+100))
|
383 |
+
df = pd.merge(player_df, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
384 |
+
elif prop_type_var == "Walks Allowed (Pitchers)":
|
385 |
+
player_df = pitcher_stats
|
386 |
+
prop_df = prop_frame[prop_frame['prop_type'] == 'pitcher_walks']
|
387 |
+
prop_df = prop_df[['Player', 'over_prop', 'over_line', 'under_line']]
|
388 |
+
prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
|
389 |
+
prop_df = prop_df.loc[prop_df['Prop'] != 0]
|
390 |
+
prop_df['Over'] = np.where(prop_df['over_line'] < 0, (-(prop_df['over_line'])/((-(prop_df['over_line']))+100)), 100/(prop_df['over_line']+100))
|
391 |
+
prop_df['Under'] = np.where(prop_df['under_line'] < 0, (-(prop_df['under_line'])/((-(prop_df['under_line']))+100)), 100/(prop_df['under_line']+100))
|
392 |
+
df = pd.merge(player_df, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
393 |
elif prop_type_var == "Total Bases (Hitters)":
|
394 |
player_df = hitter_stats
|
395 |
prop_df = prop_frame[prop_frame['prop_type'] == 'batter_total_bases']
|
|
|
408 |
prop_df['Over'] = np.where(prop_df['over_line'] < 0, (-(prop_df['over_line'])/((-(prop_df['over_line']))+100)), 100/(prop_df['over_line']+100))
|
409 |
prop_df['Under'] = np.where(prop_df['under_line'] < 0, (-(prop_df['under_line'])/((-(prop_df['under_line']))+100)), 100/(prop_df['under_line']+100))
|
410 |
df = pd.merge(player_df, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
411 |
+
elif prop_type_var == "Hits (Hitters)":
|
412 |
+
player_df = hitter_stats
|
413 |
+
prop_df = prop_frame[prop_frame['prop_type'] == 'batter_hits']
|
414 |
+
prop_df = prop_df[['Player', 'over_prop', 'over_line', 'under_line']]
|
415 |
+
prop_df.rename(columns={"over_prop": "Prop"}, inplace = True)
|
416 |
+
prop_df = prop_df.loc[prop_df['Prop'] != 0]
|
417 |
+
prop_df['Over'] = np.where(prop_df['over_line'] < 0, (-(prop_df['over_line'])/((-(prop_df['over_line']))+100)), 100/(prop_df['over_line']+100))
|
418 |
+
prop_df['Under'] = np.where(prop_df['under_line'] < 0, (-(prop_df['under_line'])/((-(prop_df['under_line']))+100)), 100/(prop_df['under_line']+100))
|
419 |
+
df = pd.merge(player_df, prop_df, how='left', left_on=['Player'], right_on = ['Player'])
|
420 |
|
421 |
prop_dict = dict(zip(df.Player, df.Prop))
|
422 |
over_dict = dict(zip(df.Player, df.Over))
|
|
|
428 |
|
429 |
if prop_type_var == "Strikeouts (Pitchers)":
|
430 |
df['Median'] = df['Ks']
|
431 |
+
elif prop_type_var == "Earned Runs (Pitchers)":
|
432 |
+
df['Median'] = df['ERs']
|
433 |
elif prop_type_var == "Total Outs (Pitchers)":
|
434 |
df['Median'] = df['Outs']
|
435 |
+
elif prop_type_var == "Hits Against (Pitchers)":
|
436 |
+
df['Median'] = df['Hits']
|
437 |
+
elif prop_type_var == "Walks Allowed (Pitchers)":
|
438 |
+
df['Median'] = df['BB']
|
439 |
elif prop_type_var == "Total Bases (Hitters)":
|
440 |
df['Median'] = df['Total Bases']
|
441 |
elif prop_type_var == "Stolen Bases (Hitters)":
|
|
|
444 |
flex_file = df
|
445 |
if prop_type_var == 'Strikeouts (Pitchers)':
|
446 |
flex_file['Floor'] = flex_file['Median'] * .20
|
447 |
+
flex_file['Ceiling'] = flex_file['Median'] * 1.8
|
448 |
flex_file['STD'] = flex_file['Median'] / 4
|
449 |
flex_file['Prop'] = flex_file['Player'].map(prop_dict)
|
450 |
flex_file = flex_file[['Player', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD']]
|
451 |
|
452 |
elif prop_type_var == 'Total Outs (Pitchers)':
|
453 |
flex_file['Floor'] = flex_file['Median'] * .20
|
454 |
+
flex_file['Ceiling'] = flex_file['Median'] * 1.8
|
455 |
+
flex_file['STD'] = flex_file['Median'] / 4
|
456 |
+
flex_file['Prop'] = flex_file['Player'].map(prop_dict)
|
457 |
+
flex_file = flex_file[['Player', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD']]
|
458 |
+
|
459 |
+
elif prop_type_var == 'Earned Runs (Pitchers)':
|
460 |
+
flex_file['Floor'] = flex_file['Median'] * .20
|
461 |
+
flex_file['Ceiling'] = flex_file['Median'] * 1.8
|
462 |
+
flex_file['STD'] = flex_file['Median'] / 4
|
463 |
+
flex_file['Prop'] = flex_file['Player'].map(prop_dict)
|
464 |
+
flex_file = flex_file[['Player', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD']]
|
465 |
+
|
466 |
+
elif prop_type_var == 'Hits Against (Pitchers)':
|
467 |
+
flex_file['Floor'] = flex_file['Median'] * .20
|
468 |
+
flex_file['Ceiling'] = flex_file['Median'] * 1.8
|
469 |
+
flex_file['STD'] = flex_file['Median'] / 4
|
470 |
+
flex_file['Prop'] = flex_file['Player'].map(prop_dict)
|
471 |
+
flex_file = flex_file[['Player', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD']]
|
472 |
+
|
473 |
+
elif prop_type_var == 'Walks Allowed (Pitchers)':
|
474 |
+
flex_file['Floor'] = flex_file['Median'] * .20
|
475 |
+
flex_file['Ceiling'] = flex_file['Median'] * 1.8
|
476 |
flex_file['STD'] = flex_file['Median'] / 4
|
477 |
flex_file['Prop'] = flex_file['Player'].map(prop_dict)
|
478 |
flex_file = flex_file[['Player', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD']]
|
479 |
|
480 |
elif prop_type_var == 'Total Bases (Hitters)':
|
481 |
flex_file['Floor'] = np.where((prop_type_var == "Fantasy") | (prop_type_var == "FD_Fantasy") | (prop_type_var == "PrizePicks"), flex_file['Median'] * .20, 0)
|
482 |
+
flex_file['Ceiling'] = np.where((prop_type_var == "Fantasy") | (prop_type_var == "FD_Fantasy") | (prop_type_var == "PrizePicks"), flex_file['Median'] * 1.8, flex_file['Median'] * 4)
|
483 |
flex_file['STD'] = flex_file['Median'] / 1.5
|
484 |
flex_file['Prop'] = flex_file['Player'].map(prop_dict)
|
485 |
flex_file = flex_file[['Player', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD']]
|
486 |
|
487 |
elif prop_type_var == 'Stolen Bases (Hitters)':
|
488 |
flex_file['Floor'] = np.where((prop_type_var == "Fantasy") | (prop_type_var == "FD_Fantasy") | (prop_type_var == "PrizePicks"), flex_file['Median'] * .20, 0)
|
489 |
+
flex_file['Ceiling'] = np.where((prop_type_var == "Fantasy") | (prop_type_var == "FD_Fantasy") | (prop_type_var == "PrizePicks"), flex_file['Median'] * 1.8, flex_file['Median'] * 4)
|
490 |
flex_file['STD'] = flex_file['Median'] / 1.5
|
491 |
flex_file['Prop'] = flex_file['Player'].map(prop_dict)
|
492 |
flex_file = flex_file[['Player', 'Prop', 'Floor', 'Median', 'Ceiling', 'STD']]
|