Spaces:
Sleeping
Sleeping
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),
|