James McCool commited on
Commit
360e14d
·
1 Parent(s): 8a6ecff

Update player data processing in Streamlit app to include 'exFPTS' in dataframes and adjust column selections for improved accuracy and consistency in lineup generation.

Browse files
Files changed (1) hide show
  1. src/streamlit_app.py +14 -16
src/streamlit_app.py CHANGED
@@ -122,7 +122,7 @@ def init_handbuilder_data(site_var):
122
  cursor = collection.find()
123
  raw_display = pd.DataFrame(list(cursor))
124
  raw_display = raw_display.rename(columns={'player_ID': 'player_id'})
125
- raw_display = raw_display[['Player', 'Position', 'Team', 'Opp', 'Salary', 'Floor', 'Median', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '20+%', '2x%', '3x%', '4x%',
126
  'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
127
  load_display = raw_display[raw_display['Position'] != 'K']
128
  load_display['Player'] = load_display['Player'].map(dict(zip(wrong_team_names, right_name_teams)), na_action='ignore').fillna(load_display['Player'])
@@ -132,7 +132,7 @@ def init_handbuilder_data(site_var):
132
  cursor = collection.find()
133
  raw_display = pd.DataFrame(list(cursor))
134
  raw_display = raw_display.rename(columns={'player_ID': 'player_id'})
135
- raw_display = raw_display[['Player', 'Position', 'Team', 'Opp', 'Salary', 'Floor', 'Median', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '20+%', '2x%', '3x%', '4x%',
136
  'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
137
  load_display = raw_display[raw_display['Position'] != 'K']
138
  load_display['Player'] = load_display['Player'].map(dict(zip(wrong_team_names, right_name_teams)), na_action='ignore').fillna(load_display['Player'])
@@ -155,7 +155,7 @@ def init_baselines():
155
 
156
  raw_display = pd.DataFrame(list(cursor))
157
  raw_display = raw_display.rename(columns={'player_ID': 'player_id'})
158
- raw_display = raw_display[['Player', 'Position', 'Team', 'Opp', 'Salary', 'Floor', 'Median', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '20+%', '2x%', '3x%', '4x%',
159
  'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
160
  raw_display['Player'] = raw_display['Player'].map(dict(zip(wrong_team_names, right_name_teams)), na_action='ignore').fillna(raw_display['Player'])
161
  load_display = raw_display[raw_display['Position'] != 'K']
@@ -168,7 +168,7 @@ def init_baselines():
168
 
169
  raw_display = pd.DataFrame(list(cursor))
170
  raw_display = raw_display.rename(columns={'player_ID': 'player_id'})
171
- raw_display = raw_display[['Player', 'Position', 'Team', 'Opp', 'Salary', 'Floor', 'Median', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '20+%', '2x%', '3x%', '4x%',
172
  'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
173
  raw_display['Player'] = raw_display['Player'].map(dict(zip(wrong_team_names, right_name_teams)), na_action='ignore').fillna(raw_display['Player'])
174
  load_display = raw_display[raw_display['Position'] != 'K']
@@ -181,7 +181,7 @@ def init_baselines():
181
 
182
  raw_display = pd.DataFrame(list(cursor))
183
  raw_display = raw_display.rename(columns={'player_ID': 'player_id'})
184
- raw_display = raw_display[['Player', 'Position', 'Team', 'Opp', 'Salary', 'Floor', 'Median', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '20+%', '2x%', '3x%', '4x%',
185
  'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
186
  raw_display['Player'] = raw_display['Player'].map(dict(zip(wrong_team_names, right_name_teams)), na_action='ignore').fillna(raw_display['Player'])
187
  # load_display = raw_display[raw_display['Position'] != 'K']
@@ -194,7 +194,7 @@ def init_baselines():
194
 
195
  raw_display = pd.DataFrame(list(cursor))
196
  raw_display = raw_display.rename(columns={'player_ID': 'player_id'})
197
- raw_display = raw_display[['Player', 'Position', 'Team', 'Opp', 'Salary', 'Floor', 'Median', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '20+%', '2x%', '3x%', '4x%',
198
  'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
199
  raw_display['Player'] = raw_display['Player'].map(dict(zip(wrong_team_names, right_name_teams)), na_action='ignore').fillna(raw_display['Player'])
200
  # load_display = raw_display[raw_display['Position'] != 'K']
@@ -206,14 +206,14 @@ def init_baselines():
206
  cursor = collection.find()
207
 
208
  raw_display = pd.DataFrame(list(cursor))
209
- raw_display = raw_display[['Team', 'QB', 'WR1_TE', 'WR2_TE', 'Total', 'Salary', 'Floor', 'Median', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '60+%', '2x%', '3x%', '4x%', 'Own', 'LevX', 'slate', 'version']]
210
  dk_stacks_raw = raw_display.copy()
211
 
212
  collection = db["FD_DFS_Stacks"]
213
  cursor = collection.find()
214
 
215
  raw_display = pd.DataFrame(list(cursor))
216
- raw_display = raw_display[['Team', 'QB', 'WR1_TE', 'WR2_TE', 'Total', 'Salary', 'Floor', 'Median', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '60+%', '2x%', '3x%', '4x%', 'Own', 'LevX', 'slate', 'version']]
217
  fd_stacks_raw = raw_display.copy()
218
 
219
  return player_stats, dk_stacks_raw, fd_stacks_raw, dk_roo_raw, fd_roo_raw, dk_sd_roo_raw, fd_sd_roo_raw, dk_id_map, fd_id_map, dk_sd_id_map, fd_sd_id_map
@@ -571,8 +571,8 @@ with app_load_reset_column:
571
  slate_names_dk, slate_name_lookup_dk = define_dk_showdown_slates()
572
  slate_names_fd, slate_name_lookup_fd = define_fd_showdown_slates()
573
  player_stats, dk_stacks_raw, fd_stacks_raw, dk_roo_raw, fd_roo_raw, dk_sd_roo_raw, fd_sd_roo_raw, dk_id_map, fd_id_map, dk_sd_id_map, fd_sd_id_map = init_baselines()
574
- dk_lineups = init_DK_lineups('Regular', slate_names_dk[0], 'proj', 50, dk_showdown_db_translation, 25000, [])
575
- fd_lineups = init_FD_lineups('Regular', slate_names_fd[0], 'proj', 50, fd_showdown_db_translation, 25000, [])
576
  for key in st.session_state.keys():
577
  del st.session_state[key]
578
  with app_view_site_column:
@@ -1029,12 +1029,10 @@ if selected_tab == 'Stacks ROO':
1029
  split_var1 = st.radio("Would you like to view the whole slate or just specific games?", ('Full Slate Run', 'Specific Games'), key='split_var1_radio')
1030
  if site_var == 'Draftkings':
1031
  raw_baselines = dk_stacks_raw[dk_stacks_raw['slate'] == str(slate_var1)]
1032
- raw_baselines = raw_baselines[raw_baselines['version'] == 'overall']
1033
- raw_baselines = raw_baselines.iloc[:,:-2]
1034
  elif site_var == 'Fanduel':
1035
  raw_baselines = fd_stacks_raw[fd_stacks_raw['slate'] == str(slate_var1)]
1036
- raw_baselines = raw_baselines[raw_baselines['version'] == 'overall']
1037
- raw_baselines = raw_baselines.iloc[:,:-2]
1038
  if split_var1 == 'Specific Games':
1039
  team_var1 = st.multiselect('Which teams would you like to include in the ROO?', options = raw_baselines['Team'].unique(), key='team_var1_multiselect')
1040
  elif split_var1 == 'Full Slate Run':
@@ -1044,7 +1042,7 @@ if selected_tab == 'Stacks ROO':
1044
  if view_var == 'Simple':
1045
  st.session_state['final_stacks'] = st.session_state['final_stacks'][['Team', 'QB', 'WR1_TE', 'WR2_TE', 'Salary', 'Median', '60+%', '4x%']]
1046
  elif view_var == 'Advanced':
1047
- st.session_state['final_stacks'] = st.session_state['final_stacks'][['Team', 'QB', 'WR1_TE', 'WR2_TE', 'Total', 'Salary', 'Floor', 'Median', 'Ceiling', 'Top_finish', 'Top_5_finish',
1048
  'Top_10_finish', '60+%', '2x%', '3x%', '4x%', 'Own', 'LevX']]
1049
  with st.container():
1050
  st.dataframe(st.session_state['final_stacks'].style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').format(player_roo_format, precision=2), height=750, use_container_width = True, key='stacks_dataframe')
@@ -1149,7 +1147,7 @@ if selected_tab == 'Player ROO':
1149
  final_Proj = final_Proj[['Player', 'Position', 'Team', 'Salary', 'Median', 'Top_5_finish', '4x%']]
1150
  st.session_state['disp_proj'] = final_Proj.set_index('Player')
1151
  elif view_var == 'Advanced':
1152
- final_Proj = final_Proj[['Player', 'Position', 'Team', 'Opp', 'Salary', 'Floor', 'Median', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '20+%', '2x%', '3x%', '4x%', 'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX']]
1153
  st.session_state['disp_proj'] = final_Proj.set_index('Player')
1154
  with st.container():
1155
  st.dataframe(st.session_state['disp_proj'].style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').format(player_roo_format, precision=2), height=750, use_container_width = True, key='player_dataframe')
 
122
  cursor = collection.find()
123
  raw_display = pd.DataFrame(list(cursor))
124
  raw_display = raw_display.rename(columns={'player_ID': 'player_id'})
125
+ 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%',
126
  'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
127
  load_display = raw_display[raw_display['Position'] != 'K']
128
  load_display['Player'] = load_display['Player'].map(dict(zip(wrong_team_names, right_name_teams)), na_action='ignore').fillna(load_display['Player'])
 
132
  cursor = collection.find()
133
  raw_display = pd.DataFrame(list(cursor))
134
  raw_display = raw_display.rename(columns={'player_ID': 'player_id'})
135
+ 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%',
136
  'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
137
  load_display = raw_display[raw_display['Position'] != 'K']
138
  load_display['Player'] = load_display['Player'].map(dict(zip(wrong_team_names, right_name_teams)), na_action='ignore').fillna(load_display['Player'])
 
155
 
156
  raw_display = pd.DataFrame(list(cursor))
157
  raw_display = raw_display.rename(columns={'player_ID': 'player_id'})
158
+ 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%',
159
  'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
160
  raw_display['Player'] = raw_display['Player'].map(dict(zip(wrong_team_names, right_name_teams)), na_action='ignore').fillna(raw_display['Player'])
161
  load_display = raw_display[raw_display['Position'] != 'K']
 
168
 
169
  raw_display = pd.DataFrame(list(cursor))
170
  raw_display = raw_display.rename(columns={'player_ID': 'player_id'})
171
+ 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%',
172
  'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
173
  raw_display['Player'] = raw_display['Player'].map(dict(zip(wrong_team_names, right_name_teams)), na_action='ignore').fillna(raw_display['Player'])
174
  load_display = raw_display[raw_display['Position'] != 'K']
 
181
 
182
  raw_display = pd.DataFrame(list(cursor))
183
  raw_display = raw_display.rename(columns={'player_ID': 'player_id'})
184
+ 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%',
185
  'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
186
  raw_display['Player'] = raw_display['Player'].map(dict(zip(wrong_team_names, right_name_teams)), na_action='ignore').fillna(raw_display['Player'])
187
  # load_display = raw_display[raw_display['Position'] != 'K']
 
194
 
195
  raw_display = pd.DataFrame(list(cursor))
196
  raw_display = raw_display.rename(columns={'player_ID': 'player_id'})
197
+ 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%',
198
  'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
199
  raw_display['Player'] = raw_display['Player'].map(dict(zip(wrong_team_names, right_name_teams)), na_action='ignore').fillna(raw_display['Player'])
200
  # load_display = raw_display[raw_display['Position'] != 'K']
 
206
  cursor = collection.find()
207
 
208
  raw_display = pd.DataFrame(list(cursor))
209
+ raw_display = raw_display[['Team', 'QB', 'WR1_TE', 'WR2_TE', 'Total', 'Salary', 'Floor', 'Median', 'exFPTS', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '60+%', '2x%', '3x%', '4x%', 'Own', 'LevX', 'slate']]
210
  dk_stacks_raw = raw_display.copy()
211
 
212
  collection = db["FD_DFS_Stacks"]
213
  cursor = collection.find()
214
 
215
  raw_display = pd.DataFrame(list(cursor))
216
+ raw_display = raw_display[['Team', 'QB', 'WR1_TE', 'WR2_TE', 'Total', 'Salary', 'Floor', 'Median', 'exFPTS', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '60+%', '2x%', '3x%', '4x%', 'Own', 'LevX', 'slate']]
217
  fd_stacks_raw = raw_display.copy()
218
 
219
  return player_stats, dk_stacks_raw, fd_stacks_raw, dk_roo_raw, fd_roo_raw, dk_sd_roo_raw, fd_sd_roo_raw, dk_id_map, fd_id_map, dk_sd_id_map, fd_sd_id_map
 
571
  slate_names_dk, slate_name_lookup_dk = define_dk_showdown_slates()
572
  slate_names_fd, slate_name_lookup_fd = define_fd_showdown_slates()
573
  player_stats, dk_stacks_raw, fd_stacks_raw, dk_roo_raw, fd_roo_raw, dk_sd_roo_raw, fd_sd_roo_raw, dk_id_map, fd_id_map, dk_sd_id_map, fd_sd_id_map = init_baselines()
574
+ dk_lineups = init_DK_lineups('Regular', 'Main Slate', 'proj', 50, dk_showdown_db_translation, 25000, [])
575
+ fd_lineups = init_FD_lineups('Regular', 'Main Slate', 'proj', 50, fd_showdown_db_translation, 25000, [])
576
  for key in st.session_state.keys():
577
  del st.session_state[key]
578
  with app_view_site_column:
 
1029
  split_var1 = st.radio("Would you like to view the whole slate or just specific games?", ('Full Slate Run', 'Specific Games'), key='split_var1_radio')
1030
  if site_var == 'Draftkings':
1031
  raw_baselines = dk_stacks_raw[dk_stacks_raw['slate'] == str(slate_var1)]
1032
+ raw_baselines = raw_baselines.iloc[:,:-1]
 
1033
  elif site_var == 'Fanduel':
1034
  raw_baselines = fd_stacks_raw[fd_stacks_raw['slate'] == str(slate_var1)]
1035
+ raw_baselines = raw_baselines.iloc[:,:-1]
 
1036
  if split_var1 == 'Specific Games':
1037
  team_var1 = st.multiselect('Which teams would you like to include in the ROO?', options = raw_baselines['Team'].unique(), key='team_var1_multiselect')
1038
  elif split_var1 == 'Full Slate Run':
 
1042
  if view_var == 'Simple':
1043
  st.session_state['final_stacks'] = st.session_state['final_stacks'][['Team', 'QB', 'WR1_TE', 'WR2_TE', 'Salary', 'Median', '60+%', '4x%']]
1044
  elif view_var == 'Advanced':
1045
+ st.session_state['final_stacks'] = st.session_state['final_stacks'][['Team', 'QB', 'WR1_TE', 'WR2_TE', 'Total', 'Salary', 'Floor', 'Median', 'exFPTS', 'Ceiling', 'Top_finish', 'Top_5_finish',
1046
  'Top_10_finish', '60+%', '2x%', '3x%', '4x%', 'Own', 'LevX']]
1047
  with st.container():
1048
  st.dataframe(st.session_state['final_stacks'].style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').format(player_roo_format, precision=2), height=750, use_container_width = True, key='stacks_dataframe')
 
1147
  final_Proj = final_Proj[['Player', 'Position', 'Team', 'Salary', 'Median', 'Top_5_finish', '4x%']]
1148
  st.session_state['disp_proj'] = final_Proj.set_index('Player')
1149
  elif view_var == 'Advanced':
1150
+ final_Proj = final_Proj[['Player', 'Position', 'Team', 'Opp', 'Salary', 'Floor', 'Median', 'exFPTS', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '20+%', '2x%', '3x%', '4x%', 'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX']]
1151
  st.session_state['disp_proj'] = final_Proj.set_index('Player')
1152
  with st.container():
1153
  st.dataframe(st.session_state['disp_proj'].style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').format(player_roo_format, precision=2), height=750, use_container_width = True, key='player_dataframe')