Spaces:
Running
Running
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
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 |
-
|
|
|
|
|
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 |
-
|
|
|
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 |
-
|
|
|
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([
|
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([
|
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),
|