James McCool commited on
Commit
e559e56
·
1 Parent(s): 1086fd6

Enhance overall stats retrieval in app.py: add separate data frames for Draftkings and Fanduel to improve player ID mapping and streamline data handling during lineup processing.

Browse files
Files changed (1) hide show
  1. app.py +15 -9
app.py CHANGED
@@ -113,6 +113,8 @@ def load_overall_stats():
113
  raw_display = raw_display.loc[raw_display['Median'] > 0]
114
  raw_display = raw_display.apply(pd.to_numeric, errors='ignore')
115
  sd_raw = raw_display.sort_values(by='Median', ascending=False)
 
 
116
 
117
  print(sd_raw.head(10))
118
 
@@ -128,7 +130,7 @@ def load_overall_stats():
128
 
129
  timestamp = raw_display['timestamp'].values[0]
130
 
131
- return dk_raw, fd_raw, dk_raw_sec, fd_raw_sec, roo_raw, sd_raw, timestamp
132
 
133
  @st.cache_data(ttl = 60)
134
  def init_DK_lineups(slate_desig: str):
@@ -248,11 +250,13 @@ def convert_df(array):
248
  array = pd.DataFrame(array, columns=column_names)
249
  return array.to_csv().encode('utf-8')
250
 
251
- dk_raw, fd_raw, dk_raw_sec, fd_raw_sec, roo_raw, sd_raw, timestamp = load_overall_stats()
252
  salary_dict = dict(zip(roo_raw.Player, roo_raw.Salary))
253
  id_dict = dict(zip(roo_raw.Player, roo_raw.player_ID))
254
  salary_dict_sd = dict(zip(sd_raw.Player, sd_raw.Salary))
255
- id_dict_sd = dict(zip(sd_raw.Player, sd_raw.player_ID))
 
 
256
  dk_lineups = pd.DataFrame(columns=dk_columns)
257
  dk_sd_lineups = pd.DataFrame(columns=dk_sd_columns)
258
  fd_lineups = pd.DataFrame(columns=fd_columns)
@@ -274,11 +278,12 @@ with tab1:
274
  with col2:
275
  if st.button("Load/Reset Data", key='reset1'):
276
  st.cache_data.clear()
277
- dk_raw, fd_raw, dk_raw_sec, fd_raw_sec, roo_raw, sd_raw, timestamp = load_overall_stats()
278
  salary_dict = dict(zip(roo_raw.Player, roo_raw.Salary))
279
  id_dict = dict(zip(roo_raw.Player, roo_raw.player_ID))
280
  salary_dict_sd = dict(zip(sd_raw.Player, sd_raw.Salary))
281
- id_dict_sd = dict(zip(sd_raw.Player, sd_raw.player_ID))
 
282
  dk_lineups = pd.DataFrame(columns=dk_columns)
283
  dk_sd_lineups = pd.DataFrame(columns=dk_sd_columns)
284
  fd_lineups = pd.DataFrame(columns=fd_columns)
@@ -371,11 +376,12 @@ with tab2:
371
  with st.expander("Info and Filters"):
372
  if st.button("Load/Reset Data", key='reset2'):
373
  st.cache_data.clear()
374
- dk_raw, fd_raw, dk_raw_sec, fd_raw_sec, roo_raw, sd_raw, timestamp = load_overall_stats()
375
  salary_dict = dict(zip(roo_raw.Player, roo_raw.Salary))
376
  id_dict = dict(zip(roo_raw.Player, roo_raw.player_ID))
377
  salary_dict_sd = dict(zip(sd_raw.Player, sd_raw.Salary))
378
- id_dict_sd = dict(zip(sd_raw.Player, sd_raw.player_ID))
 
379
  dk_lineups = pd.DataFrame(columns=dk_columns)
380
  dk_sd_lineups = pd.DataFrame(columns=dk_sd_columns)
381
  fd_lineups = pd.DataFrame(columns=fd_columns)
@@ -431,7 +437,7 @@ with tab2:
431
  data_export = init_DK_SD_lineups(slate_var1)
432
  data_export_names = data_export.copy()
433
  for col_idx in range(6):
434
- data_export[:, col_idx] = np.array([id_dict_sd.get(player, player) for player in data_export[:, col_idx]])
435
 
436
  elif site_var1 == 'Fanduel':
437
  if slate_type_var1 == 'Regular':
@@ -443,7 +449,7 @@ with tab2:
443
  data_export = init_FD_SD_lineups(slate_var1)
444
  data_export_names = data_export.copy()
445
  for col_idx in range(6):
446
- data_export[:, col_idx] = np.array([id_dict_sd.get(player, player) for player in data_export[:, col_idx]])
447
  st.download_button(
448
  label="Export optimals (Names)",
449
  data=convert_df(data_export_names),
 
113
  raw_display = raw_display.loc[raw_display['Median'] > 0]
114
  raw_display = raw_display.apply(pd.to_numeric, errors='ignore')
115
  sd_raw = raw_display.sort_values(by='Median', ascending=False)
116
+ dk_sd_raw = sd_raw[sd_raw['site'] == 'Draftkings']
117
+ fd_sd_raw = sd_raw[sd_raw['site'] == 'Fanduel']
118
 
119
  print(sd_raw.head(10))
120
 
 
130
 
131
  timestamp = raw_display['timestamp'].values[0]
132
 
133
+ return dk_raw, fd_raw, dk_raw_sec, fd_raw_sec, roo_raw, sd_raw, dk_sd_raw, fd_sd_raw, timestamp
134
 
135
  @st.cache_data(ttl = 60)
136
  def init_DK_lineups(slate_desig: str):
 
250
  array = pd.DataFrame(array, columns=column_names)
251
  return array.to_csv().encode('utf-8')
252
 
253
+ dk_raw, fd_raw, dk_raw_sec, fd_raw_sec, roo_raw, sd_raw, dk_sd_raw, fd_sd_raw, timestamp = load_overall_stats()
254
  salary_dict = dict(zip(roo_raw.Player, roo_raw.Salary))
255
  id_dict = dict(zip(roo_raw.Player, roo_raw.player_ID))
256
  salary_dict_sd = dict(zip(sd_raw.Player, sd_raw.Salary))
257
+ dk_id_dict_sd = dict(zip(dk_sd_raw.Player, dk_sd_raw.player_ID))
258
+ fd_id_dict_sd = dict(zip(fd_sd_raw.Player, fd_sd_raw.player_ID))
259
+
260
  dk_lineups = pd.DataFrame(columns=dk_columns)
261
  dk_sd_lineups = pd.DataFrame(columns=dk_sd_columns)
262
  fd_lineups = pd.DataFrame(columns=fd_columns)
 
278
  with col2:
279
  if st.button("Load/Reset Data", key='reset1'):
280
  st.cache_data.clear()
281
+ dk_raw, fd_raw, dk_raw_sec, fd_raw_sec, roo_raw, sd_raw, dk_sd_raw, fd_sd_raw, timestamp = load_overall_stats()
282
  salary_dict = dict(zip(roo_raw.Player, roo_raw.Salary))
283
  id_dict = dict(zip(roo_raw.Player, roo_raw.player_ID))
284
  salary_dict_sd = dict(zip(sd_raw.Player, sd_raw.Salary))
285
+ dk_id_dict_sd = dict(zip(dk_sd_raw.Player, dk_sd_raw.player_ID))
286
+ fd_id_dict_sd = dict(zip(fd_sd_raw.Player, fd_sd_raw.player_ID))
287
  dk_lineups = pd.DataFrame(columns=dk_columns)
288
  dk_sd_lineups = pd.DataFrame(columns=dk_sd_columns)
289
  fd_lineups = pd.DataFrame(columns=fd_columns)
 
376
  with st.expander("Info and Filters"):
377
  if st.button("Load/Reset Data", key='reset2'):
378
  st.cache_data.clear()
379
+ dk_raw, fd_raw, dk_raw_sec, fd_raw_sec, roo_raw, sd_raw, dk_sd_raw, fd_sd_raw, timestamp = load_overall_stats()
380
  salary_dict = dict(zip(roo_raw.Player, roo_raw.Salary))
381
  id_dict = dict(zip(roo_raw.Player, roo_raw.player_ID))
382
  salary_dict_sd = dict(zip(sd_raw.Player, sd_raw.Salary))
383
+ dk_id_dict_sd = dict(zip(dk_sd_raw.Player, dk_sd_raw.player_ID))
384
+ fd_id_dict_sd = dict(zip(fd_sd_raw.Player, fd_sd_raw.player_ID))
385
  dk_lineups = pd.DataFrame(columns=dk_columns)
386
  dk_sd_lineups = pd.DataFrame(columns=dk_sd_columns)
387
  fd_lineups = pd.DataFrame(columns=fd_columns)
 
437
  data_export = init_DK_SD_lineups(slate_var1)
438
  data_export_names = data_export.copy()
439
  for col_idx in range(6):
440
+ data_export[:, col_idx] = np.array([dk_id_dict_sd.get(player, player) for player in data_export[:, col_idx]])
441
 
442
  elif site_var1 == 'Fanduel':
443
  if slate_type_var1 == 'Regular':
 
449
  data_export = init_FD_SD_lineups(slate_var1)
450
  data_export_names = data_export.copy()
451
  for col_idx in range(6):
452
+ data_export[:, col_idx] = np.array([fd_id_dict_sd.get(player, player) for player in data_export[:, col_idx]])
453
  st.download_button(
454
  label="Export optimals (Names)",
455
  data=convert_df(data_export_names),