James McCool
commited on
Commit
·
c34709f
1
Parent(s):
3f10760
Refactor optimal lineup export logic to apply salary and team count filters before converting player names to IDs, ensuring accurate data processing for DraftKings and FanDuel. Update column mappings for NBA and WNBA to reflect new player positions.
Browse files- src/streamlit_app.py +31 -28
src/streamlit_app.py
CHANGED
|
@@ -1168,7 +1168,7 @@ if selected_tab == 'Optimals':
|
|
| 1168 |
if site_var == 'Draftkings':
|
| 1169 |
if type_var == 'Regular':
|
| 1170 |
if sport_var == 'NBA':
|
| 1171 |
-
map_columns = ['PG', '
|
| 1172 |
elif sport_var == 'WNBA':
|
| 1173 |
map_columns = ['G1', 'G2', 'F1', 'F2', 'F3', 'UTIL']
|
| 1174 |
for col_idx in map_columns:
|
|
@@ -1182,7 +1182,7 @@ if selected_tab == 'Optimals':
|
|
| 1182 |
if sport_var == 'NBA':
|
| 1183 |
map_columns = ['PG1', 'PG2', 'SG1', 'SG2', 'SF1', 'SF2', 'PF1', 'PF2', 'C']
|
| 1184 |
elif sport_var == 'WNBA':
|
| 1185 |
-
map_columns = ['G1', 'G2', 'F1', 'F2', 'F3', '
|
| 1186 |
for col_idx in map_columns:
|
| 1187 |
data_export[col_idx] = data_export[col_idx].map(fd_id_map)
|
| 1188 |
elif type_var == 'Showdown':
|
|
@@ -1245,10 +1245,35 @@ if selected_tab == 'Optimals':
|
|
| 1245 |
if st.button("Prepare full data export (Filtered)", key='data_export_filtered_button'):
|
| 1246 |
name_export = pd.DataFrame(st.session_state.working_seed.copy(), columns=column_names)
|
| 1247 |
data_export = pd.DataFrame(st.session_state.working_seed.copy(), columns=column_names)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1248 |
if site_var == 'Draftkings':
|
| 1249 |
if type_var == 'Regular':
|
| 1250 |
if sport_var == 'NBA':
|
| 1251 |
-
map_columns = ['PG', '
|
| 1252 |
elif sport_var == 'WNBA':
|
| 1253 |
map_columns = ['G1', 'G2', 'F1', 'F2', 'F3', 'UTIL']
|
| 1254 |
for col_idx in map_columns:
|
|
@@ -1263,35 +1288,13 @@ if selected_tab == 'Optimals':
|
|
| 1263 |
if sport_var == 'NBA':
|
| 1264 |
map_columns = ['PG1', 'PG2', 'SG1', 'SG2', 'SF1', 'SF2', 'PF1', 'PF2', 'C']
|
| 1265 |
elif sport_var == 'WNBA':
|
| 1266 |
-
map_columns = ['G1', 'G2', 'F1', 'F2', 'F3', '
|
| 1267 |
for col_idx in map_columns:
|
| 1268 |
data_export[col_idx] = data_export[col_idx].map(fd_id_map)
|
| 1269 |
elif type_var == 'Showdown':
|
| 1270 |
map_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']
|
| 1271 |
for col_idx in map_columns:
|
| 1272 |
data_export[col_idx] = data_export[col_idx].map(fd_sd_id_map)
|
| 1273 |
-
|
| 1274 |
-
data_export = data_export[data_export['salary'] >= salary_min_var]
|
| 1275 |
-
data_export = data_export[data_export['salary'] <= salary_max_var]
|
| 1276 |
-
data_export = data_export[data_export['Team_count'] >= min_stacks_var]
|
| 1277 |
-
data_export = data_export[data_export['Team_count'] <= max_stacks_var]
|
| 1278 |
-
if site_var == 'Draftkings':
|
| 1279 |
-
data_export = map_mask_parse(data_export, dict(zip(raw_baselines['Player'], raw_baselines['Median'])), projection_var, site_var)
|
| 1280 |
-
data_export = map_mask_parse(data_export, dict(zip(raw_baselines['Player'], raw_baselines['Own'])), ownership_var, site_var)
|
| 1281 |
-
elif site_var == 'Fanduel':
|
| 1282 |
-
data_export = map_mask_parse(data_export, dict(zip(raw_baselines['Player'], raw_baselines['Median'])), projection_var, site_var)
|
| 1283 |
-
data_export = map_mask_parse(data_export, dict(zip(raw_baselines['Player'], raw_baselines['Own'])), ownership_var, site_var)
|
| 1284 |
-
|
| 1285 |
-
name_export = name_export[name_export['salary'] >= salary_min_var]
|
| 1286 |
-
name_export = name_export[name_export['salary'] <= salary_max_var]
|
| 1287 |
-
name_export = name_export[name_export['Team_count'] >= min_stacks_var]
|
| 1288 |
-
name_export = name_export[name_export['Team_count'] <= max_stacks_var]
|
| 1289 |
-
if site_var == 'Draftkings':
|
| 1290 |
-
name_export = map_mask_parse(name_export, dict(zip(raw_baselines['Player'], raw_baselines['Median'])), projection_var, site_var)
|
| 1291 |
-
name_export = map_mask_parse(name_export, dict(zip(raw_baselines['Player'], raw_baselines['Own'])), ownership_var, site_var)
|
| 1292 |
-
elif site_var == 'Fanduel':
|
| 1293 |
-
name_export = map_mask_parse(name_export, dict(zip(raw_baselines['Player'], raw_baselines['Median'])), projection_var, site_var)
|
| 1294 |
-
name_export = map_mask_parse(name_export, dict(zip(raw_baselines['Player'], raw_baselines['Own'])), ownership_var, site_var)
|
| 1295 |
|
| 1296 |
reg_opt_col, pm_opt_col = st.columns(2)
|
| 1297 |
with reg_opt_col:
|
|
@@ -1381,7 +1384,7 @@ if selected_tab == 'Optimals':
|
|
| 1381 |
if site_var == 'Draftkings':
|
| 1382 |
if type_var == 'Regular':
|
| 1383 |
if sport_var == 'NBA':
|
| 1384 |
-
map_columns = ['PG', '
|
| 1385 |
elif sport_var == 'WNBA':
|
| 1386 |
map_columns = ['G1', 'G2', 'F1', 'F2', 'F3', 'UTIL']
|
| 1387 |
for col_idx in map_columns:
|
|
@@ -1395,7 +1398,7 @@ if selected_tab == 'Optimals':
|
|
| 1395 |
if sport_var == 'NBA':
|
| 1396 |
map_columns = ['PG1', 'PG2', 'SG1', 'SG2', 'SF1', 'SF2', 'PF1', 'PF2', 'C']
|
| 1397 |
elif sport_var == 'WNBA':
|
| 1398 |
-
map_columns = ['G1', 'G2', 'F1', 'F2', 'F3', '
|
| 1399 |
for col_idx in map_columns:
|
| 1400 |
export_file[col_idx] = export_file[col_idx].map(fd_id_map)
|
| 1401 |
elif type_var == 'Showdown':
|
|
|
|
| 1168 |
if site_var == 'Draftkings':
|
| 1169 |
if type_var == 'Regular':
|
| 1170 |
if sport_var == 'NBA':
|
| 1171 |
+
map_columns = ['PG', 'SG', 'SF', 'PF', 'C', 'G', 'F', 'FLEX']
|
| 1172 |
elif sport_var == 'WNBA':
|
| 1173 |
map_columns = ['G1', 'G2', 'F1', 'F2', 'F3', 'UTIL']
|
| 1174 |
for col_idx in map_columns:
|
|
|
|
| 1182 |
if sport_var == 'NBA':
|
| 1183 |
map_columns = ['PG1', 'PG2', 'SG1', 'SG2', 'SF1', 'SF2', 'PF1', 'PF2', 'C']
|
| 1184 |
elif sport_var == 'WNBA':
|
| 1185 |
+
map_columns = ['G1', 'G2', 'G3', 'F1', 'F2', 'F3', 'F4']
|
| 1186 |
for col_idx in map_columns:
|
| 1187 |
data_export[col_idx] = data_export[col_idx].map(fd_id_map)
|
| 1188 |
elif type_var == 'Showdown':
|
|
|
|
| 1245 |
if st.button("Prepare full data export (Filtered)", key='data_export_filtered_button'):
|
| 1246 |
name_export = pd.DataFrame(st.session_state.working_seed.copy(), columns=column_names)
|
| 1247 |
data_export = pd.DataFrame(st.session_state.working_seed.copy(), columns=column_names)
|
| 1248 |
+
|
| 1249 |
+
# Apply filters BEFORE converting to IDs
|
| 1250 |
+
data_export = data_export[data_export['salary'] >= salary_min_var]
|
| 1251 |
+
data_export = data_export[data_export['salary'] <= salary_max_var]
|
| 1252 |
+
data_export = data_export[data_export['Team_count'] >= min_stacks_var]
|
| 1253 |
+
data_export = data_export[data_export['Team_count'] <= max_stacks_var]
|
| 1254 |
+
if site_var == 'Draftkings':
|
| 1255 |
+
data_export = map_mask_parse(data_export, dict(zip(raw_baselines['Player'], raw_baselines['Median'])), projection_var, site_var)
|
| 1256 |
+
data_export = map_mask_parse(data_export, dict(zip(raw_baselines['Player'], raw_baselines['Own'])), ownership_var, site_var)
|
| 1257 |
+
elif site_var == 'Fanduel':
|
| 1258 |
+
data_export = map_mask_parse(data_export, dict(zip(raw_baselines['Player'], raw_baselines['Median'])), projection_var, site_var)
|
| 1259 |
+
data_export = map_mask_parse(data_export, dict(zip(raw_baselines['Player'], raw_baselines['Own'])), ownership_var, site_var)
|
| 1260 |
+
|
| 1261 |
+
name_export = name_export[name_export['salary'] >= salary_min_var]
|
| 1262 |
+
name_export = name_export[name_export['salary'] <= salary_max_var]
|
| 1263 |
+
name_export = name_export[name_export['Team_count'] >= min_stacks_var]
|
| 1264 |
+
name_export = name_export[name_export['Team_count'] <= max_stacks_var]
|
| 1265 |
+
if site_var == 'Draftkings':
|
| 1266 |
+
name_export = map_mask_parse(name_export, dict(zip(raw_baselines['Player'], raw_baselines['Median'])), projection_var, site_var)
|
| 1267 |
+
name_export = map_mask_parse(name_export, dict(zip(raw_baselines['Player'], raw_baselines['Own'])), ownership_var, site_var)
|
| 1268 |
+
elif site_var == 'Fanduel':
|
| 1269 |
+
name_export = map_mask_parse(name_export, dict(zip(raw_baselines['Player'], raw_baselines['Median'])), projection_var, site_var)
|
| 1270 |
+
name_export = map_mask_parse(name_export, dict(zip(raw_baselines['Player'], raw_baselines['Own'])), ownership_var, site_var)
|
| 1271 |
+
|
| 1272 |
+
# NOW convert player names to IDs after filtering
|
| 1273 |
if site_var == 'Draftkings':
|
| 1274 |
if type_var == 'Regular':
|
| 1275 |
if sport_var == 'NBA':
|
| 1276 |
+
map_columns = ['PG', 'SG', 'SF', 'PF', 'C', 'G', 'F', 'FLEX']
|
| 1277 |
elif sport_var == 'WNBA':
|
| 1278 |
map_columns = ['G1', 'G2', 'F1', 'F2', 'F3', 'UTIL']
|
| 1279 |
for col_idx in map_columns:
|
|
|
|
| 1288 |
if sport_var == 'NBA':
|
| 1289 |
map_columns = ['PG1', 'PG2', 'SG1', 'SG2', 'SF1', 'SF2', 'PF1', 'PF2', 'C']
|
| 1290 |
elif sport_var == 'WNBA':
|
| 1291 |
+
map_columns = ['G1', 'G2', 'G3', 'F1', 'F2', 'F3', 'F4']
|
| 1292 |
for col_idx in map_columns:
|
| 1293 |
data_export[col_idx] = data_export[col_idx].map(fd_id_map)
|
| 1294 |
elif type_var == 'Showdown':
|
| 1295 |
map_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']
|
| 1296 |
for col_idx in map_columns:
|
| 1297 |
data_export[col_idx] = data_export[col_idx].map(fd_sd_id_map)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1298 |
|
| 1299 |
reg_opt_col, pm_opt_col = st.columns(2)
|
| 1300 |
with reg_opt_col:
|
|
|
|
| 1384 |
if site_var == 'Draftkings':
|
| 1385 |
if type_var == 'Regular':
|
| 1386 |
if sport_var == 'NBA':
|
| 1387 |
+
map_columns = ['PG', 'SG', 'SF', 'PF', 'C', 'G', 'F', 'FLEX']
|
| 1388 |
elif sport_var == 'WNBA':
|
| 1389 |
map_columns = ['G1', 'G2', 'F1', 'F2', 'F3', 'UTIL']
|
| 1390 |
for col_idx in map_columns:
|
|
|
|
| 1398 |
if sport_var == 'NBA':
|
| 1399 |
map_columns = ['PG1', 'PG2', 'SG1', 'SG2', 'SF1', 'SF2', 'PF1', 'PF2', 'C']
|
| 1400 |
elif sport_var == 'WNBA':
|
| 1401 |
+
map_columns = ['G1', 'G2', 'G3', 'F1', 'F2', 'F3', 'F4']
|
| 1402 |
for col_idx in map_columns:
|
| 1403 |
export_file[col_idx] = export_file[col_idx].map(fd_id_map)
|
| 1404 |
elif type_var == 'Showdown':
|