James McCool commited on
Commit
b44c733
·
1 Parent(s): 4fdebbd

Enhance projections file upload functionality by adding a selection option for sourcing projections from either 'User Upload' or 'Paydirt DB'. Update init_nfl_baselines function to accept additional parameters for site and slate, and filter projections based on these parameters, improving data handling and user experience.

Browse files
Files changed (2) hide show
  1. app.py +6 -1
  2. database_queries.py +13 -11
app.py CHANGED
@@ -653,13 +653,18 @@ if selected_tab == 'Data Load':
653
 
654
  with col3:
655
  st.subheader("Projections File")
 
656
  st.info("upload a projections file that has 'player_names', 'salary', 'median', 'ownership', and 'captain ownership' columns. Note that the salary for showdown needs to be the FLEX salary, not the captain salary.")
657
 
658
  # Create two columns for the uploader and template button
659
  upload_col, template_col = st.columns([3, 1])
660
 
661
  with upload_col:
662
- projections_file = st.file_uploader("Upload Projections File (CSV or Excel)", type=['csv', 'xlsx', 'xls'])
 
 
 
 
663
  if 'projections_df' in st.session_state:
664
  del st.session_state['projections_df']
665
 
 
653
 
654
  with col3:
655
  st.subheader("Projections File")
656
+ proj_options = st.selectbox("Select a projections source", options=['Paydirt DB', 'User Upload'])
657
  st.info("upload a projections file that has 'player_names', 'salary', 'median', 'ownership', and 'captain ownership' columns. Note that the salary for showdown needs to be the FLEX salary, not the captain salary.")
658
 
659
  # Create two columns for the uploader and template button
660
  upload_col, template_col = st.columns([3, 1])
661
 
662
  with upload_col:
663
+ if proj_options == 'User Upload':
664
+ projections_file = st.file_uploader("Upload Projections File (CSV or Excel)", type=['csv', 'xlsx', 'xls'])
665
+ elif proj_options == 'Paydirt DB':
666
+ projections_file = init_nfl_baselines(type_var, site_var, 'Main Slate')
667
+ st.session_state['db_projections_file'] = projections_file
668
  if 'projections_df' in st.session_state:
669
  del st.session_state['projections_df']
670
 
database_queries.py CHANGED
@@ -13,7 +13,7 @@ right_nfl_name_teams = ['Broncos', 'Commanders', 'Bengals', 'Cardinals', 'Rams',
13
  'Jets', 'Colts', 'Dolphins', 'Lions', 'Raiders', 'Falcons', 'Seahawks', 'Texans', 'Saints', 'Panthers', 'Giants', 'Browns', 'Titans', 'Eagles', 'Cowboys',
14
  'Chiefs', 'Chargers', 'Ravens', 'Bills', 'Vikings', 'Bears']
15
 
16
- def init_nfl_baselines(type_var: str):
17
 
18
  if type_var == 'Regular':
19
  collection = nfl_db["DK_NFL_ROO"]
@@ -21,11 +21,12 @@ def init_nfl_baselines(type_var: str):
21
 
22
  raw_display = pd.DataFrame(list(cursor))
23
  raw_display = raw_display.rename(columns={'player_ID': 'player_id'})
24
- raw_display = raw_display[['Player', 'Position', 'Team', 'Opp', 'Salary', 'Floor', 'Median', 'exFPTS', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '20+%', '2x%', '3x%', '4x%',
25
- 'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
26
  raw_display['Player'] = raw_display['Player'].map(dict(zip(wrong_nfl_team_names, right_nfl_name_teams)), na_action='ignore').fillna(raw_display['Player'])
27
  load_display = raw_display[raw_display['Position'] != 'K']
28
  dk_roo_raw = load_display.dropna(subset=['Median'])
 
 
29
 
30
  dk_id_map = dict(zip(dk_roo_raw['Player'], dk_roo_raw['player_id']))
31
 
@@ -34,16 +35,17 @@ def init_nfl_baselines(type_var: str):
34
 
35
  raw_display = pd.DataFrame(list(cursor))
36
  raw_display = raw_display.rename(columns={'player_ID': 'player_id'})
37
- raw_display = raw_display[['Player', 'Position', 'Team', 'Opp', 'Salary', 'Floor', 'Median', 'exFPTS', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '20+%', '2x%', '3x%', '4x%',
38
- 'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
39
  raw_display['Player'] = raw_display['Player'].map(dict(zip(wrong_nfl_team_names, right_nfl_name_teams)), na_action='ignore').fillna(raw_display['Player'])
40
  load_display = raw_display[raw_display['Position'] != 'K']
41
  fd_roo_raw = load_display.dropna(subset=['Median'])
 
 
42
 
43
  fd_id_map = dict(zip(fd_roo_raw['Player'], fd_roo_raw['player_id']))
44
 
45
- dk_roo_raw = dk_roo_raw.drop(columns=['player_id'])
46
- fd_roo_raw = fd_roo_raw.drop(columns=['player_id'])
47
 
48
  dk_roo_raw = dk_roo_raw.rename(columns={'Player': 'player_names', 'Position': 'position', 'Team': 'team', 'Salary': 'salary', 'Median': 'median', 'Own': 'ownership', 'CPT_Own': 'captain ownership'})
49
  fd_roo_raw = fd_roo_raw.rename(columns={'Player': 'player_names', 'Position': 'position', 'Team': 'team', 'Salary': 'salary', 'Median': 'median', 'Own': 'ownership', 'CPT_Own': 'captain ownership'})
@@ -58,7 +60,7 @@ def init_nfl_baselines(type_var: str):
58
 
59
  raw_display = pd.DataFrame(list(cursor))
60
  raw_display = raw_display.rename(columns={'player_ID': 'player_id'})
61
- raw_display = raw_display[['Player', 'Position', 'Team', 'Salary', 'Median', 'Own', 'CPT_Own', 'player_id']]
62
  raw_display['Player'] = raw_display['Player'].map(dict(zip(wrong_nfl_team_names, right_nfl_name_teams)), na_action='ignore').fillna(raw_display['Player'])
63
  # load_display = raw_display[raw_display['Position'] != 'K']
64
  dk_sd_roo_raw = raw_display.dropna(subset=['Median'])
@@ -70,15 +72,15 @@ def init_nfl_baselines(type_var: str):
70
 
71
  raw_display = pd.DataFrame(list(cursor))
72
  raw_display = raw_display.rename(columns={'player_ID': 'player_id'})
73
- raw_display = raw_display[['Player', 'Position', 'Team', 'Salary', 'Median', 'Own', 'CPT_Own', 'player_id']]
74
  raw_display['Player'] = raw_display['Player'].map(dict(zip(wrong_nfl_team_names, right_nfl_name_teams)), na_action='ignore').fillna(raw_display['Player'])
75
  # load_display = raw_display[raw_display['Position'] != 'K']
76
  fd_sd_roo_raw = raw_display.dropna(subset=['Median'])
77
 
78
  fd_sd_id_map = dict(zip(fd_sd_roo_raw['Player'], fd_sd_roo_raw['player_id']))
79
 
80
- dk_sd_roo_raw = dk_sd_roo_raw.drop(columns=['player_id'])
81
- fd_sd_roo_raw = fd_sd_roo_raw.drop(columns=['player_id'])
82
 
83
  dk_sd_roo_raw = dk_sd_roo_raw.rename(columns={'Player': 'player_names', 'Position': 'position', 'Team': 'team', 'Salary': 'salary', 'Median': 'median', 'Own': 'ownership', 'CPT_Own': 'captain ownership'})
84
  fd_sd_roo_raw = fd_sd_roo_raw.rename(columns={'Player': 'player_names', 'Position': 'position', 'Team': 'team', 'Salary': 'salary', 'Median': 'median', 'Own': 'ownership', 'CPT_Own': 'captain_ownership'})
 
13
  'Jets', 'Colts', 'Dolphins', 'Lions', 'Raiders', 'Falcons', 'Seahawks', 'Texans', 'Saints', 'Panthers', 'Giants', 'Browns', 'Titans', 'Eagles', 'Cowboys',
14
  'Chiefs', 'Chargers', 'Ravens', 'Bills', 'Vikings', 'Bears']
15
 
16
+ def init_nfl_baselines(type_var: str, site_var: str, slate_var: str):
17
 
18
  if type_var == 'Regular':
19
  collection = nfl_db["DK_NFL_ROO"]
 
21
 
22
  raw_display = pd.DataFrame(list(cursor))
23
  raw_display = raw_display.rename(columns={'player_ID': 'player_id'})
24
+ raw_display = raw_display[['Player', 'Position', 'Team', 'Salary', 'Median', 'Own', 'CPT_Own','player_id', 'slate', 'version']]
 
25
  raw_display['Player'] = raw_display['Player'].map(dict(zip(wrong_nfl_team_names, right_nfl_name_teams)), na_action='ignore').fillna(raw_display['Player'])
26
  load_display = raw_display[raw_display['Position'] != 'K']
27
  dk_roo_raw = load_display.dropna(subset=['Median'])
28
+ dk_roo_raw = dk_roo_raw[dk_roo_raw['version'] == 'overall']
29
+ dk_roo_raw = dk_roo_raw[dk_roo_raw['slate'] == slate_var]
30
 
31
  dk_id_map = dict(zip(dk_roo_raw['Player'], dk_roo_raw['player_id']))
32
 
 
35
 
36
  raw_display = pd.DataFrame(list(cursor))
37
  raw_display = raw_display.rename(columns={'player_ID': 'player_id'})
38
+ raw_display = raw_display[['Player', 'Position', 'Team', 'Salary', 'Median', 'Own', 'CPT_Own','player_id', 'slate', 'version']]
 
39
  raw_display['Player'] = raw_display['Player'].map(dict(zip(wrong_nfl_team_names, right_nfl_name_teams)), na_action='ignore').fillna(raw_display['Player'])
40
  load_display = raw_display[raw_display['Position'] != 'K']
41
  fd_roo_raw = load_display.dropna(subset=['Median'])
42
+ fd_roo_raw = fd_roo_raw[fd_roo_raw['version'] == 'overall']
43
+ fd_roo_raw = fd_roo_raw[fd_roo_raw['slate'] == slate_var]
44
 
45
  fd_id_map = dict(zip(fd_roo_raw['Player'], fd_roo_raw['player_id']))
46
 
47
+ dk_roo_raw = dk_roo_raw.drop(columns=['player_id', 'slate', 'version'])
48
+ fd_roo_raw = fd_roo_raw.drop(columns=['player_id', 'slate', 'version'])
49
 
50
  dk_roo_raw = dk_roo_raw.rename(columns={'Player': 'player_names', 'Position': 'position', 'Team': 'team', 'Salary': 'salary', 'Median': 'median', 'Own': 'ownership', 'CPT_Own': 'captain ownership'})
51
  fd_roo_raw = fd_roo_raw.rename(columns={'Player': 'player_names', 'Position': 'position', 'Team': 'team', 'Salary': 'salary', 'Median': 'median', 'Own': 'ownership', 'CPT_Own': 'captain ownership'})
 
60
 
61
  raw_display = pd.DataFrame(list(cursor))
62
  raw_display = raw_display.rename(columns={'player_ID': 'player_id'})
63
+ raw_display = raw_display[['Player', 'Position', 'Team', 'Salary', 'Median', 'Own', 'CPT_Own', 'player_id', 'slate']]
64
  raw_display['Player'] = raw_display['Player'].map(dict(zip(wrong_nfl_team_names, right_nfl_name_teams)), na_action='ignore').fillna(raw_display['Player'])
65
  # load_display = raw_display[raw_display['Position'] != 'K']
66
  dk_sd_roo_raw = raw_display.dropna(subset=['Median'])
 
72
 
73
  raw_display = pd.DataFrame(list(cursor))
74
  raw_display = raw_display.rename(columns={'player_ID': 'player_id'})
75
+ raw_display = raw_display[['Player', 'Position', 'Team', 'Salary', 'Median', 'Own', 'CPT_Own', 'player_id', 'slate']]
76
  raw_display['Player'] = raw_display['Player'].map(dict(zip(wrong_nfl_team_names, right_nfl_name_teams)), na_action='ignore').fillna(raw_display['Player'])
77
  # load_display = raw_display[raw_display['Position'] != 'K']
78
  fd_sd_roo_raw = raw_display.dropna(subset=['Median'])
79
 
80
  fd_sd_id_map = dict(zip(fd_sd_roo_raw['Player'], fd_sd_roo_raw['player_id']))
81
 
82
+ dk_sd_roo_raw = dk_sd_roo_raw.drop(columns=['player_id', 'slate'])
83
+ fd_sd_roo_raw = fd_sd_roo_raw.drop(columns=['player_id', 'slate'])
84
 
85
  dk_sd_roo_raw = dk_sd_roo_raw.rename(columns={'Player': 'player_names', 'Position': 'position', 'Team': 'team', 'Salary': 'salary', 'Median': 'median', 'Own': 'ownership', 'CPT_Own': 'captain ownership'})
86
  fd_sd_roo_raw = fd_sd_roo_raw.rename(columns={'Player': 'player_names', 'Position': 'position', 'Team': 'team', 'Salary': 'salary', 'Median': 'median', 'Own': 'ownership', 'CPT_Own': 'captain_ownership'})