James McCool
commited on
Commit
·
548fe2e
1
Parent(s):
6a823c5
Adding MMA support
Browse files- app.py +137 -3
- database.py +3 -2
- database_queries.py +396 -0
app.py
CHANGED
|
@@ -51,6 +51,12 @@ dk_db_nhl_showdown_selections = ['DK_NHL_SD_seed_frame_Showdown #1', 'DK_NHL_SD_
|
|
| 51 |
fd_db_nhl_showdown_selections = ['FD_NHL_SD_seed_frame_Showdown #1', 'FD_NHL_SD_seed_frame_Showdown #2', 'FD_NHL_SD_seed_frame_Showdown #3', 'FD_NHL_SD_seed_frame_Showdown #4', 'FD_NHL_SD_seed_frame_Showdown #5', 'FD_NHL_SD_seed_frame_Showdown #6',
|
| 52 |
'FD_NHL_SD_seed_frame_Showdown #7', 'FD_NHL_SD_seed_frame_Showdown #8', 'FD_NHL_SD_seed_frame_Showdown #9', 'FD_NHL_SD_seed_frame_Showdown #10', 'FD_NHL_SD_seed_frame_Showdown #11', 'FD_NHL_SD_seed_frame_Showdown #12', 'FD_NHL_SD_seed_frame_Showdown #13',
|
| 53 |
'FD_NHL_SD_seed_frame_Showdown #14', 'FD_NHL_SD_seed_frame_Showdown #15']
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 54 |
|
| 55 |
dk_nfl_showdown_db_translation = dict(zip(showdown_selections, dk_db_nfl_showdown_selections))
|
| 56 |
fd_nfl_showdown_db_translation = dict(zip(showdown_selections, fd_db_nfl_showdown_selections))
|
|
@@ -58,6 +64,8 @@ dk_nba_showdown_db_translation = dict(zip(showdown_selections, dk_db_nba_showdow
|
|
| 58 |
fd_nba_showdown_db_translation = dict(zip(showdown_selections, fd_db_nba_showdown_selections))
|
| 59 |
dk_nhl_showdown_db_translation = dict(zip(showdown_selections, dk_db_nhl_showdown_selections))
|
| 60 |
fd_nhl_showdown_db_translation = dict(zip(showdown_selections, fd_db_nhl_showdown_selections))
|
|
|
|
|
|
|
| 61 |
|
| 62 |
freq_format = {'Finish_percentile': '{:.2%}', 'Lineup Edge': '{:.2%}', 'Lineup Edge_Raw': '{:.2%}', 'Win%': '{:.2%}'}
|
| 63 |
stacking_sports = ['MLB', 'NHL', 'NFL', 'LOL', 'NCAAF']
|
|
@@ -311,6 +319,49 @@ def grab_nhl_showdown_salaries():
|
|
| 311 |
records = records.rename(columns={'Display Name': 'Name', 'draftableId': 'ID', 'Position': 'Roster Position'})
|
| 312 |
return records
|
| 313 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 314 |
def define_dk_nfl_showdown_slates():
|
| 315 |
collection = nfl_db["DK_SD_NFL_ROO"]
|
| 316 |
cursor = collection.find()
|
|
@@ -447,6 +498,52 @@ except:
|
|
| 447 |
nhl_slate_names_fd = []
|
| 448 |
nhl_slate_name_lookup_fd = {}
|
| 449 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 450 |
# Memory optimization helper functions
|
| 451 |
def chunk_name_matching(portfolio_names, csv_names, chunk_size=1000):
|
| 452 |
"""Process name matching in chunks to reduce memory usage"""
|
|
@@ -826,6 +923,8 @@ with st.container():
|
|
| 826 |
slate_var3 = st.radio("Which slate data are you loading?", (nfl_slate_names_dk if type_var == 'Showdown' else ['Main', 'Secondary', 'Auxiliary']), key='slate_var3_radio')
|
| 827 |
elif sport_var == 'NHL':
|
| 828 |
slate_var3 = st.radio("Which slate data are you loading?", (nhl_slate_names_dk if type_var == 'Showdown' else ['Main', 'Secondary', 'Auxiliary']), key='slate_var3_radio')
|
|
|
|
|
|
|
| 829 |
else:
|
| 830 |
slate_var3 = st.radio("Which slate data are you loading?", (['Main', 'Secondary', 'Auxiliary']), key='slate_var3_radio')
|
| 831 |
elif site_var == 'Fanduel':
|
|
@@ -835,6 +934,8 @@ with st.container():
|
|
| 835 |
slate_var3 = st.radio("Which slate data are you loading?", (nfl_slate_names_fd if type_var == 'Showdown' else ['Main', 'Secondary', 'Auxiliary']), key='slate_var3_radio')
|
| 836 |
elif sport_var == 'NHL':
|
| 837 |
slate_var3 = st.radio("Which slate data are you loading?", (nhl_slate_names_fd if type_var == 'Showdown' else ['Main', 'Secondary', 'Auxiliary']), key='slate_var3_radio')
|
|
|
|
|
|
|
| 838 |
else:
|
| 839 |
slate_var3 = st.radio("Which slate data are you loading?", (['Main', 'Secondary', 'Auxiliary']), key='slate_var3_radio')
|
| 840 |
|
|
@@ -881,6 +982,14 @@ with st.container():
|
|
| 881 |
nhl_showdown_salaries = grab_nhl_showdown_salaries()
|
| 882 |
except:
|
| 883 |
nhl_showdown_salaries = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 884 |
|
| 885 |
try:
|
| 886 |
selected_tab = st.segmented_control(
|
|
@@ -935,6 +1044,11 @@ if selected_tab == 'Data Load':
|
|
| 935 |
st.session_state['csv_file'] = load_csv(nhl_reg_salaries)
|
| 936 |
elif type_var == 'Showdown':
|
| 937 |
st.session_state['csv_file'] = load_csv(nhl_showdown_salaries)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 938 |
st.session_state['pricing_loaded'] = True
|
| 939 |
|
| 940 |
try:
|
|
@@ -994,7 +1108,7 @@ if selected_tab == 'Data Load':
|
|
| 994 |
with col2:
|
| 995 |
st.subheader("Portfolio File")
|
| 996 |
st.info("Go ahead and upload a portfolio file here. Only include player columns.")
|
| 997 |
-
st.warning("Database load is active and in testing for NBA and
|
| 998 |
|
| 999 |
upload_toggle = st.selectbox("What source are you uploading from?", options=['Paydirt DB', 'SaberSim (Just IDs)', 'Draftkings/Fanduel (Names + IDs)', 'Other (Just Names)'])
|
| 1000 |
if 'portfolio' not in st.session_state:
|
|
@@ -1009,6 +1123,8 @@ if selected_tab == 'Data Load':
|
|
| 1009 |
portfolio_load = init_DK_NFL_lineups(type_var, slate_var3, prio_var, 50, dk_nfl_showdown_db_translation, lineup_num_var, [])
|
| 1010 |
elif sport_var == 'NHL':
|
| 1011 |
portfolio_load = init_DK_NHL_lineups(type_var, slate_var3, prio_var, 50, dk_nhl_showdown_db_translation, lineup_num_var, [])
|
|
|
|
|
|
|
| 1012 |
else:
|
| 1013 |
if sport_var == 'NBA':
|
| 1014 |
portfolio_load = init_DK_NBA_lineups(type_var, nba_slate_name_lookup_dk[slate_var3], prio_var, 50, dk_nba_showdown_db_translation, lineup_num_var, [])
|
|
@@ -1016,6 +1132,9 @@ if selected_tab == 'Data Load':
|
|
| 1016 |
portfolio_load = init_DK_NFL_lineups(type_var, nfl_slate_name_lookup_dk[slate_var3], prio_var, 50, dk_nfl_showdown_db_translation, lineup_num_var, [])
|
| 1017 |
elif sport_var == 'NHL':
|
| 1018 |
portfolio_load = init_DK_NHL_lineups(type_var, nhl_slate_name_lookup_dk[slate_var3], prio_var, 50, dk_nhl_showdown_db_translation, lineup_num_var, [])
|
|
|
|
|
|
|
|
|
|
| 1019 |
st.session_state['db_portfolio_file'] = pd.DataFrame(portfolio_load)
|
| 1020 |
st.session_state['portfolio_loaded'] = True
|
| 1021 |
if 'portfolio' in st.session_state:
|
|
@@ -1030,6 +1149,8 @@ if selected_tab == 'Data Load':
|
|
| 1030 |
portfolio_load = init_FD_NFL_lineups(type_var, slate_var3, prio_var, 50, fd_nfl_showdown_db_translation, lineup_num_var, [])
|
| 1031 |
elif sport_var == 'NHL':
|
| 1032 |
portfolio_load = init_FD_NHL_lineups(type_var, slate_var3, prio_var, 50, fd_nhl_showdown_db_translation, lineup_num_var, [])
|
|
|
|
|
|
|
| 1033 |
else:
|
| 1034 |
if sport_var == 'NBA':
|
| 1035 |
portfolio_load = init_FD_NBA_lineups(type_var, nba_slate_name_lookup_fd[slate_var3], prio_var, 50, fd_nba_showdown_db_translation, lineup_num_var, [])
|
|
@@ -1037,6 +1158,9 @@ if selected_tab == 'Data Load':
|
|
| 1037 |
portfolio_load = init_FD_NFL_lineups(type_var, nfl_slate_name_lookup_fd[slate_var3], prio_var, 50, fd_nfl_showdown_db_translation, lineup_num_var, [])
|
| 1038 |
elif sport_var == 'NHL':
|
| 1039 |
portfolio_load = init_FD_NHL_lineups(type_var, nhl_slate_name_lookup_fd[slate_var3], prio_var, 50, fd_nhl_showdown_db_translation, lineup_num_var, [])
|
|
|
|
|
|
|
|
|
|
| 1040 |
st.session_state['db_portfolio_file'] = pd.DataFrame(portfolio_load)
|
| 1041 |
st.session_state['portfolio_loaded'] = True
|
| 1042 |
if 'portfolio' in st.session_state:
|
|
@@ -1122,10 +1246,9 @@ if selected_tab == 'Data Load':
|
|
| 1122 |
with col3:
|
| 1123 |
st.subheader("Projections File")
|
| 1124 |
st.info("upload a projections file that has 'player_names', 'salary', 'median', 'ownership', and 'captain ownership' columns. Note that the salary for showdown needs to be the FLEX salary, not the captain salary.")
|
| 1125 |
-
st.warning("Database load is active and in testing for NBA and
|
| 1126 |
proj_options = st.selectbox("Select a projections source", options=['Paydirt DB', 'User Upload'])
|
| 1127 |
|
| 1128 |
-
|
| 1129 |
# Create two columns for the uploader and template button
|
| 1130 |
upload_col, template_col = st.columns([3, 1])
|
| 1131 |
|
|
@@ -1171,6 +1294,17 @@ if selected_tab == 'Data Load':
|
|
| 1171 |
projections_file = init_nhl_baselines(type_var, site_var, slate_var3)[1]
|
| 1172 |
elif type_var == 'Showdown':
|
| 1173 |
projections_file = init_nhl_baselines(type_var, site_var, slate_var3)[3]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1174 |
st.session_state['db_projections_file'] = projections_file
|
| 1175 |
st.session_state['projections_loaded'] = True
|
| 1176 |
if 'projections_df' in st.session_state:
|
|
|
|
| 51 |
fd_db_nhl_showdown_selections = ['FD_NHL_SD_seed_frame_Showdown #1', 'FD_NHL_SD_seed_frame_Showdown #2', 'FD_NHL_SD_seed_frame_Showdown #3', 'FD_NHL_SD_seed_frame_Showdown #4', 'FD_NHL_SD_seed_frame_Showdown #5', 'FD_NHL_SD_seed_frame_Showdown #6',
|
| 52 |
'FD_NHL_SD_seed_frame_Showdown #7', 'FD_NHL_SD_seed_frame_Showdown #8', 'FD_NHL_SD_seed_frame_Showdown #9', 'FD_NHL_SD_seed_frame_Showdown #10', 'FD_NHL_SD_seed_frame_Showdown #11', 'FD_NHL_SD_seed_frame_Showdown #12', 'FD_NHL_SD_seed_frame_Showdown #13',
|
| 53 |
'FD_NHL_SD_seed_frame_Showdown #14', 'FD_NHL_SD_seed_frame_Showdown #15']
|
| 54 |
+
dk_db_mma_showdown_selections = ['DK_MMA_SD_seed_frame_Showdown #1', 'DK_MMA_SD_seed_frame_Showdown #2', 'DK_MMA_SD_seed_frame_Showdown #3', 'DK_MMA_SD_seed_frame_Showdown #4', 'DK_MMA_SD_seed_frame_Showdown #5', 'DK_MMA_SD_seed_frame_Showdown #6',
|
| 55 |
+
'DK_MMA_SD_seed_frame_Showdown #7', 'DK_MMA_SD_seed_frame_Showdown #8', 'DK_MMA_SD_seed_frame_Showdown #9', 'DK_MMA_SD_seed_frame_Showdown #10', 'DK_MMA_SD_seed_frame_Showdown #11', 'DK_MMA_SD_seed_frame_Showdown #12', 'DK_MMA_SD_seed_frame_Showdown #13',
|
| 56 |
+
'DK_MMA_SD_seed_frame_Showdown #14', 'DK_MMA_SD_seed_frame_Showdown #15']
|
| 57 |
+
fd_db_mma_showdown_selections = ['FD_MMA_SD_seed_frame_Showdown #1', 'FD_MMA_SD_seed_frame_Showdown #2', 'FD_MMA_SD_seed_frame_Showdown #3', 'FD_MMA_SD_seed_frame_Showdown #4', 'FD_MMA_SD_seed_frame_Showdown #5', 'FD_MMA_SD_seed_frame_Showdown #6',
|
| 58 |
+
'FD_MMA_SD_seed_frame_Showdown #7', 'FD_MMA_SD_seed_frame_Showdown #8', 'FD_MMA_SD_seed_frame_Showdown #9', 'FD_MMA_SD_seed_frame_Showdown #10', 'FD_MMA_SD_seed_frame_Showdown #11', 'FD_MMA_SD_seed_frame_Showdown #12', 'FD_MMA_SD_seed_frame_Showdown #13',
|
| 59 |
+
'FD_MMA_SD_seed_frame_Showdown #14', 'FD_MMA_SD_seed_frame_Showdown #15']
|
| 60 |
|
| 61 |
dk_nfl_showdown_db_translation = dict(zip(showdown_selections, dk_db_nfl_showdown_selections))
|
| 62 |
fd_nfl_showdown_db_translation = dict(zip(showdown_selections, fd_db_nfl_showdown_selections))
|
|
|
|
| 64 |
fd_nba_showdown_db_translation = dict(zip(showdown_selections, fd_db_nba_showdown_selections))
|
| 65 |
dk_nhl_showdown_db_translation = dict(zip(showdown_selections, dk_db_nhl_showdown_selections))
|
| 66 |
fd_nhl_showdown_db_translation = dict(zip(showdown_selections, fd_db_nhl_showdown_selections))
|
| 67 |
+
dk_mma_showdown_db_translation = dict(zip(showdown_selections, dk_db_mma_showdown_selections))
|
| 68 |
+
fd_mma_showdown_db_translation = dict(zip(showdown_selections, fd_db_mma_showdown_selections))
|
| 69 |
|
| 70 |
freq_format = {'Finish_percentile': '{:.2%}', 'Lineup Edge': '{:.2%}', 'Lineup Edge_Raw': '{:.2%}', 'Win%': '{:.2%}'}
|
| 71 |
stacking_sports = ['MLB', 'NHL', 'NFL', 'LOL', 'NCAAF']
|
|
|
|
| 319 |
records = records.rename(columns={'Display Name': 'Name', 'draftableId': 'ID', 'Position': 'Roster Position'})
|
| 320 |
return records
|
| 321 |
|
| 322 |
+
def grab_mma_reg_salaries(slate_var: str):
|
| 323 |
+
collection = salaries_db["MMA_reg_player_info"]
|
| 324 |
+
eastern = pytz.timezone('US/Eastern')
|
| 325 |
+
today_str = datetime.now(eastern).strftime("%Y%m%d")
|
| 326 |
+
records = pd.DataFrame(list(collection.find({'Date': {'$gte': today_str}})))
|
| 327 |
+
records = records[['Display Name', 'draftableId', 'Position', 'Salary']]
|
| 328 |
+
records = records.rename(columns={'Display Name': 'Name', 'draftableId': 'ID', 'Position': 'Roster Position'})
|
| 329 |
+
if slate_var == 'Main':
|
| 330 |
+
records = records.sort_values(by='ID', ascending=True)
|
| 331 |
+
records = records.drop_duplicates(subset=['Name'], keep='first')
|
| 332 |
+
elif slate_var == 'Secondary':
|
| 333 |
+
records = records.sort_values(by='ID', ascending=True)
|
| 334 |
+
# Keep middle occurrence: drop first and last, keep middle
|
| 335 |
+
grouped = records.groupby('Name')
|
| 336 |
+
middle_records = []
|
| 337 |
+
for name, group in grouped:
|
| 338 |
+
if len(group) == 1:
|
| 339 |
+
# Only one record, keep it
|
| 340 |
+
middle_records.append(group)
|
| 341 |
+
elif len(group) == 2:
|
| 342 |
+
# Two records, keep the second one (last)
|
| 343 |
+
middle_records.append(group.iloc[1:2])
|
| 344 |
+
else:
|
| 345 |
+
# Three or more records, keep the middle one(s)
|
| 346 |
+
# For odd number of records, keep the true middle
|
| 347 |
+
# For even number of records, keep the record at index len//2
|
| 348 |
+
middle_idx = len(group) // 2
|
| 349 |
+
middle_records.append(group.iloc[middle_idx:middle_idx+1])
|
| 350 |
+
records = pd.concat(middle_records, ignore_index=True)
|
| 351 |
+
elif slate_var == 'Auxiliary':
|
| 352 |
+
records = records.sort_values(by='ID', ascending=True)
|
| 353 |
+
records = records.drop_duplicates(subset=['Name'], keep='last')
|
| 354 |
+
return records
|
| 355 |
+
|
| 356 |
+
def grab_mma_showdown_salaries():
|
| 357 |
+
collection = salaries_db["MMA_showdown_player_info"]
|
| 358 |
+
eastern = pytz.timezone('US/Eastern')
|
| 359 |
+
today_str = datetime.now(eastern).strftime("%Y%m%d")
|
| 360 |
+
records = pd.DataFrame(list(collection.find({'Date': {'$gte': today_str}})))
|
| 361 |
+
records = records[['Display Name', 'draftableId', 'Position', 'Salary']]
|
| 362 |
+
records = records.rename(columns={'Display Name': 'Name', 'draftableId': 'ID', 'Position': 'Roster Position'})
|
| 363 |
+
return records
|
| 364 |
+
|
| 365 |
def define_dk_nfl_showdown_slates():
|
| 366 |
collection = nfl_db["DK_SD_NFL_ROO"]
|
| 367 |
cursor = collection.find()
|
|
|
|
| 498 |
nhl_slate_names_fd = []
|
| 499 |
nhl_slate_name_lookup_fd = {}
|
| 500 |
|
| 501 |
+
def define_dk_mma_showdown_slates():
|
| 502 |
+
collection = mma_db["Player_Level_SD_ROO"]
|
| 503 |
+
cursor = collection.find()
|
| 504 |
+
raw_display = pd.DataFrame(list(cursor))
|
| 505 |
+
raw_display = raw_display[raw_display['Site'] == 'Draftkings']
|
| 506 |
+
unique_slates = raw_display['Slate'].unique()
|
| 507 |
+
|
| 508 |
+
slate_names = []
|
| 509 |
+
|
| 510 |
+
for slate in unique_slates:
|
| 511 |
+
slate_data = raw_display[raw_display['Slate'] == slate]
|
| 512 |
+
slate_name = slate_data.iloc[0]['Team'] + ' vs. ' + slate_data.iloc[0]['Opp']
|
| 513 |
+
slate_names.append(slate_name)
|
| 514 |
+
|
| 515 |
+
slate_name_lookup = dict(zip(slate_names, unique_slates))
|
| 516 |
+
return slate_names, slate_name_lookup
|
| 517 |
+
|
| 518 |
+
def define_fd_mma_showdown_slates():
|
| 519 |
+
collection = mma_db["Player_Level_SD_ROO"]
|
| 520 |
+
cursor = collection.find()
|
| 521 |
+
raw_display = pd.DataFrame(list(cursor))
|
| 522 |
+
raw_display = raw_display[raw_display['Site'] == 'Fanduel']
|
| 523 |
+
unique_slates = raw_display['Slate'].unique()
|
| 524 |
+
|
| 525 |
+
slate_names = []
|
| 526 |
+
|
| 527 |
+
for slate in unique_slates:
|
| 528 |
+
slate_data = raw_display[raw_display['Slate'] == slate]
|
| 529 |
+
slate_name = slate_data.iloc[0]['Team'] + ' vs. ' + slate_data.iloc[0]['Opp']
|
| 530 |
+
slate_names.append(slate_name)
|
| 531 |
+
|
| 532 |
+
slate_name_lookup = dict(zip(slate_names, unique_slates))
|
| 533 |
+
return slate_names, slate_name_lookup
|
| 534 |
+
|
| 535 |
+
try:
|
| 536 |
+
mma_slate_names_dk, mma_slate_name_lookup_dk = define_dk_mma_showdown_slates()
|
| 537 |
+
except:
|
| 538 |
+
mma_slate_names_dk = []
|
| 539 |
+
mma_slate_name_lookup_dk = {}
|
| 540 |
+
|
| 541 |
+
try:
|
| 542 |
+
mma_slate_names_fd, mma_slate_name_lookup_fd = define_fd_mma_showdown_slates()
|
| 543 |
+
except:
|
| 544 |
+
mma_slate_names_fd = []
|
| 545 |
+
mma_slate_name_lookup_fd = {}
|
| 546 |
+
|
| 547 |
# Memory optimization helper functions
|
| 548 |
def chunk_name_matching(portfolio_names, csv_names, chunk_size=1000):
|
| 549 |
"""Process name matching in chunks to reduce memory usage"""
|
|
|
|
| 923 |
slate_var3 = st.radio("Which slate data are you loading?", (nfl_slate_names_dk if type_var == 'Showdown' else ['Main', 'Secondary', 'Auxiliary']), key='slate_var3_radio')
|
| 924 |
elif sport_var == 'NHL':
|
| 925 |
slate_var3 = st.radio("Which slate data are you loading?", (nhl_slate_names_dk if type_var == 'Showdown' else ['Main', 'Secondary', 'Auxiliary']), key='slate_var3_radio')
|
| 926 |
+
elif sport_var == 'MMA':
|
| 927 |
+
slate_var3 = st.radio("Which slate data are you loading?", (mma_slate_names_dk if type_var == 'Showdown' else ['Main', 'Secondary', 'Auxiliary']), key='slate_var3_radio')
|
| 928 |
else:
|
| 929 |
slate_var3 = st.radio("Which slate data are you loading?", (['Main', 'Secondary', 'Auxiliary']), key='slate_var3_radio')
|
| 930 |
elif site_var == 'Fanduel':
|
|
|
|
| 934 |
slate_var3 = st.radio("Which slate data are you loading?", (nfl_slate_names_fd if type_var == 'Showdown' else ['Main', 'Secondary', 'Auxiliary']), key='slate_var3_radio')
|
| 935 |
elif sport_var == 'NHL':
|
| 936 |
slate_var3 = st.radio("Which slate data are you loading?", (nhl_slate_names_fd if type_var == 'Showdown' else ['Main', 'Secondary', 'Auxiliary']), key='slate_var3_radio')
|
| 937 |
+
elif sport_var == 'MMA':
|
| 938 |
+
slate_var3 = st.radio("Which slate data are you loading?", (mma_slate_names_fd if type_var == 'Showdown' else ['Main', 'Secondary', 'Auxiliary']), key='slate_var3_radio')
|
| 939 |
else:
|
| 940 |
slate_var3 = st.radio("Which slate data are you loading?", (['Main', 'Secondary', 'Auxiliary']), key='slate_var3_radio')
|
| 941 |
|
|
|
|
| 982 |
nhl_showdown_salaries = grab_nhl_showdown_salaries()
|
| 983 |
except:
|
| 984 |
nhl_showdown_salaries = None
|
| 985 |
+
try:
|
| 986 |
+
mma_reg_salaries = grab_mma_reg_salaries(slate_var3)
|
| 987 |
+
except:
|
| 988 |
+
mma_reg_salaries = None
|
| 989 |
+
try:
|
| 990 |
+
mma_showdown_salaries = grab_mma_showdown_salaries()
|
| 991 |
+
except:
|
| 992 |
+
mma_showdown_salaries = None
|
| 993 |
|
| 994 |
try:
|
| 995 |
selected_tab = st.segmented_control(
|
|
|
|
| 1044 |
st.session_state['csv_file'] = load_csv(nhl_reg_salaries)
|
| 1045 |
elif type_var == 'Showdown':
|
| 1046 |
st.session_state['csv_file'] = load_csv(nhl_showdown_salaries)
|
| 1047 |
+
elif sport_var == 'MMA':
|
| 1048 |
+
if type_var == 'Classic':
|
| 1049 |
+
st.session_state['csv_file'] = load_csv(mma_reg_salaries)
|
| 1050 |
+
elif type_var == 'Showdown':
|
| 1051 |
+
st.session_state['csv_file'] = load_csv(mma_showdown_salaries)
|
| 1052 |
st.session_state['pricing_loaded'] = True
|
| 1053 |
|
| 1054 |
try:
|
|
|
|
| 1108 |
with col2:
|
| 1109 |
st.subheader("Portfolio File")
|
| 1110 |
st.info("Go ahead and upload a portfolio file here. Only include player columns.")
|
| 1111 |
+
st.warning("Database load is active and in testing for NBA, NFL, NHL, and MMA, both Classic and Regular")
|
| 1112 |
|
| 1113 |
upload_toggle = st.selectbox("What source are you uploading from?", options=['Paydirt DB', 'SaberSim (Just IDs)', 'Draftkings/Fanduel (Names + IDs)', 'Other (Just Names)'])
|
| 1114 |
if 'portfolio' not in st.session_state:
|
|
|
|
| 1123 |
portfolio_load = init_DK_NFL_lineups(type_var, slate_var3, prio_var, 50, dk_nfl_showdown_db_translation, lineup_num_var, [])
|
| 1124 |
elif sport_var == 'NHL':
|
| 1125 |
portfolio_load = init_DK_NHL_lineups(type_var, slate_var3, prio_var, 50, dk_nhl_showdown_db_translation, lineup_num_var, [])
|
| 1126 |
+
elif sport_var == 'MMA':
|
| 1127 |
+
portfolio_load = init_DK_MMA_lineups(type_var, slate_var3, prio_var, 50, dk_mma_showdown_db_translation, lineup_num_var, [])
|
| 1128 |
else:
|
| 1129 |
if sport_var == 'NBA':
|
| 1130 |
portfolio_load = init_DK_NBA_lineups(type_var, nba_slate_name_lookup_dk[slate_var3], prio_var, 50, dk_nba_showdown_db_translation, lineup_num_var, [])
|
|
|
|
| 1132 |
portfolio_load = init_DK_NFL_lineups(type_var, nfl_slate_name_lookup_dk[slate_var3], prio_var, 50, dk_nfl_showdown_db_translation, lineup_num_var, [])
|
| 1133 |
elif sport_var == 'NHL':
|
| 1134 |
portfolio_load = init_DK_NHL_lineups(type_var, nhl_slate_name_lookup_dk[slate_var3], prio_var, 50, dk_nhl_showdown_db_translation, lineup_num_var, [])
|
| 1135 |
+
elif sport_var == 'MMA':
|
| 1136 |
+
portfolio_load = init_DK_MMA_lineups(type_var, mma_slate_name_lookup_dk[slate_var3], prio_var, 50, dk_mma_showdown_db_translation, lineup_num_var, [])
|
| 1137 |
+
|
| 1138 |
st.session_state['db_portfolio_file'] = pd.DataFrame(portfolio_load)
|
| 1139 |
st.session_state['portfolio_loaded'] = True
|
| 1140 |
if 'portfolio' in st.session_state:
|
|
|
|
| 1149 |
portfolio_load = init_FD_NFL_lineups(type_var, slate_var3, prio_var, 50, fd_nfl_showdown_db_translation, lineup_num_var, [])
|
| 1150 |
elif sport_var == 'NHL':
|
| 1151 |
portfolio_load = init_FD_NHL_lineups(type_var, slate_var3, prio_var, 50, fd_nhl_showdown_db_translation, lineup_num_var, [])
|
| 1152 |
+
elif sport_var == 'MMA':
|
| 1153 |
+
portfolio_load = init_FD_MMA_lineups(type_var, slate_var3, prio_var, 50, fd_mma_showdown_db_translation, lineup_num_var, [])
|
| 1154 |
else:
|
| 1155 |
if sport_var == 'NBA':
|
| 1156 |
portfolio_load = init_FD_NBA_lineups(type_var, nba_slate_name_lookup_fd[slate_var3], prio_var, 50, fd_nba_showdown_db_translation, lineup_num_var, [])
|
|
|
|
| 1158 |
portfolio_load = init_FD_NFL_lineups(type_var, nfl_slate_name_lookup_fd[slate_var3], prio_var, 50, fd_nfl_showdown_db_translation, lineup_num_var, [])
|
| 1159 |
elif sport_var == 'NHL':
|
| 1160 |
portfolio_load = init_FD_NHL_lineups(type_var, nhl_slate_name_lookup_fd[slate_var3], prio_var, 50, fd_nhl_showdown_db_translation, lineup_num_var, [])
|
| 1161 |
+
elif sport_var == 'MMA':
|
| 1162 |
+
portfolio_load = init_FD_MMA_lineups(type_var, mma_slate_name_lookup_fd[slate_var3], prio_var, 50, fd_mma_showdown_db_translation, lineup_num_var, [])
|
| 1163 |
+
|
| 1164 |
st.session_state['db_portfolio_file'] = pd.DataFrame(portfolio_load)
|
| 1165 |
st.session_state['portfolio_loaded'] = True
|
| 1166 |
if 'portfolio' in st.session_state:
|
|
|
|
| 1246 |
with col3:
|
| 1247 |
st.subheader("Projections File")
|
| 1248 |
st.info("upload a projections file that has 'player_names', 'salary', 'median', 'ownership', and 'captain ownership' columns. Note that the salary for showdown needs to be the FLEX salary, not the captain salary.")
|
| 1249 |
+
st.warning("Database load is active and in testing for NBA, NFL, NHL, and MMA, both Classic and Regular")
|
| 1250 |
proj_options = st.selectbox("Select a projections source", options=['Paydirt DB', 'User Upload'])
|
| 1251 |
|
|
|
|
| 1252 |
# Create two columns for the uploader and template button
|
| 1253 |
upload_col, template_col = st.columns([3, 1])
|
| 1254 |
|
|
|
|
| 1294 |
projections_file = init_nhl_baselines(type_var, site_var, slate_var3)[1]
|
| 1295 |
elif type_var == 'Showdown':
|
| 1296 |
projections_file = init_nhl_baselines(type_var, site_var, slate_var3)[3]
|
| 1297 |
+
elif sport_var == 'MMA':
|
| 1298 |
+
if site_var == 'Draftkings':
|
| 1299 |
+
if type_var == 'Classic':
|
| 1300 |
+
projections_file = init_mma_baselines(type_var, site_var, slate_var3)[0]
|
| 1301 |
+
elif type_var == 'Showdown':
|
| 1302 |
+
projections_file = init_mma_baselines(type_var, site_var, slate_var3)[2]
|
| 1303 |
+
elif site_var == 'Fanduel':
|
| 1304 |
+
if type_var == 'Classic':
|
| 1305 |
+
projections_file = init_mma_baselines(type_var, site_var, slate_var3)[1]
|
| 1306 |
+
elif type_var == 'Showdown':
|
| 1307 |
+
projections_file = init_mma_baselines(type_var, site_var, slate_var3)[3]
|
| 1308 |
st.session_state['db_projections_file'] = projections_file
|
| 1309 |
st.session_state['projections_loaded'] = True
|
| 1310 |
if 'projections_df' in st.session_state:
|
database.py
CHANGED
|
@@ -14,7 +14,8 @@ def init_conn():
|
|
| 14 |
nba_db = client["NBA_Database"]
|
| 15 |
mlb_db = client["MLB_Database"]
|
| 16 |
nhl_db = client["NHL_Database"]
|
|
|
|
| 17 |
|
| 18 |
-
return nfl_db, salaries_db, nba_db, mlb_db, nhl_db
|
| 19 |
|
| 20 |
-
nfl_db, salaries_db, nba_db, mlb_db, nhl_db = init_conn()
|
|
|
|
| 14 |
nba_db = client["NBA_Database"]
|
| 15 |
mlb_db = client["MLB_Database"]
|
| 16 |
nhl_db = client["NHL_Database"]
|
| 17 |
+
mma_db = client["MMA_Database"]
|
| 18 |
|
| 19 |
+
return nfl_db, salaries_db, nba_db, mlb_db, nhl_db, mma_db
|
| 20 |
|
| 21 |
+
nfl_db, salaries_db, nba_db, mlb_db, nhl_db, mma_db = init_conn()
|
database_queries.py
CHANGED
|
@@ -1226,4 +1226,400 @@ def init_FD_NHL_lineups(type_var, slate_var, prio_var, prio_mix, nhl_db_translat
|
|
| 1226 |
|
| 1227 |
FD_seed = raw_display.to_numpy()
|
| 1228 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1229 |
return FD_seed
|
|
|
|
| 1226 |
|
| 1227 |
FD_seed = raw_display.to_numpy()
|
| 1228 |
|
| 1229 |
+
return FD_seed
|
| 1230 |
+
|
| 1231 |
+
def init_mma_baselines(type_var: str, site_var: str, slate_var: str):
|
| 1232 |
+
|
| 1233 |
+
if slate_var == 'Main':
|
| 1234 |
+
slate_var = 'Main Slate'
|
| 1235 |
+
elif slate_var == 'Secondary':
|
| 1236 |
+
slate_var = 'Secondary Slate'
|
| 1237 |
+
elif slate_var == 'Auxiliary':
|
| 1238 |
+
slate_var = 'Late Slate'
|
| 1239 |
+
|
| 1240 |
+
if type_var == 'Showdown':
|
| 1241 |
+
collection = nhl_db["Player_Level_SD_ROO"]
|
| 1242 |
+
cursor = collection.find()
|
| 1243 |
+
|
| 1244 |
+
raw_display = pd.DataFrame(list(cursor))
|
| 1245 |
+
raw_display = raw_display[['Player', 'Position', 'Team', 'Salary', 'Median', 'Own', 'CPT_Own', 'player_id', 'slate', 'site', 'version', 'timestamp']]
|
| 1246 |
+
raw_display['Median'] = raw_display['Median'].replace('', 0).astype(float)
|
| 1247 |
+
raw_display = raw_display.rename(columns={"player_id": "player_ID"})
|
| 1248 |
+
raw_display = raw_display.loc[raw_display['Median'] > 0]
|
| 1249 |
+
raw_display = raw_display.apply(pd.to_numeric, errors='ignore')
|
| 1250 |
+
sd_raw = raw_display.sort_values(by='Median', ascending=False)
|
| 1251 |
+
dk_sd_roo_raw = sd_raw[sd_raw['site'] == 'Draftkings']
|
| 1252 |
+
dk_sd_id_map = dict(zip(dk_sd_roo_raw['Player'], dk_sd_roo_raw['player_ID']))
|
| 1253 |
+
fd_sd_roo_raw = sd_raw[sd_raw['site'] == 'Fanduel']
|
| 1254 |
+
fd_sd_id_map = dict(zip(fd_sd_roo_raw['Player'], fd_sd_roo_raw['player_ID']))
|
| 1255 |
+
fd_sd_roo_raw['player_ID'] = fd_sd_roo_raw['player_ID'].astype(str)
|
| 1256 |
+
fd_sd_roo_raw['player_ID'] = fd_sd_roo_raw['player_ID'].str.rsplit('-', n=1).str[0].astype(str)
|
| 1257 |
+
|
| 1258 |
+
dk_sd_roo_raw = dk_sd_roo_raw.drop(columns=['player_ID', 'slate', 'version', 'timestamp', 'site'])
|
| 1259 |
+
fd_sd_roo_raw = fd_sd_roo_raw.drop(columns=['player_ID', 'slate', 'version', 'timestamp', 'site'])
|
| 1260 |
+
|
| 1261 |
+
dk_sd_roo_raw = dk_sd_roo_raw.rename(columns={'Player': 'player_names', 'Position': 'position', 'Team': 'team', 'Salary': 'salary', 'Median': 'median', 'Own': 'ownership', 'CPT_Own': 'captain ownership'})
|
| 1262 |
+
fd_sd_roo_raw = fd_sd_roo_raw.rename(columns={'Player': 'player_names', 'Position': 'position', 'Team': 'team', 'Salary': 'salary', 'Median': 'median', 'Own': 'ownership', 'CPT_Own': 'captain ownership'})
|
| 1263 |
+
|
| 1264 |
+
dk_roo_raw = None
|
| 1265 |
+
fd_roo_raw = None
|
| 1266 |
+
dk_id_map = None
|
| 1267 |
+
fd_id_map = None
|
| 1268 |
+
|
| 1269 |
+
else:
|
| 1270 |
+
collection = nhl_db["Player_Level_ROO"]
|
| 1271 |
+
cursor = collection.find()
|
| 1272 |
+
|
| 1273 |
+
raw_display = pd.DataFrame(list(cursor))
|
| 1274 |
+
raw_display = raw_display[['Player', 'Position', 'Salary', 'Median', 'Own', 'player_id']]
|
| 1275 |
+
raw_display['Team'] = 'MMA'
|
| 1276 |
+
raw_display['Site'] = site_var
|
| 1277 |
+
raw_display = raw_display.rename(columns={"player_id": "player_ID"})
|
| 1278 |
+
raw_display['Median'] = raw_display['Median'].replace('', 0).astype(float)
|
| 1279 |
+
raw_display = raw_display.loc[raw_display['Median'] > 0]
|
| 1280 |
+
dk_roo_raw = raw_display[raw_display['Site'] == 'Draftkings']
|
| 1281 |
+
fd_roo_raw = raw_display[raw_display['Site'] == 'Draftkings']
|
| 1282 |
+
dk_id_map = dict(zip(dk_roo_raw['Player'], dk_roo_raw['player_ID']))
|
| 1283 |
+
fd_id_map = dict(zip(fd_roo_raw['Player'], fd_roo_raw['player_ID']))
|
| 1284 |
+
raw_display = raw_display.apply(pd.to_numeric, errors='ignore')
|
| 1285 |
+
|
| 1286 |
+
dk_roo_raw = dk_roo_raw.drop(columns=['player_ID'])
|
| 1287 |
+
fd_roo_raw = fd_roo_raw.drop(columns=['player_ID'])
|
| 1288 |
+
|
| 1289 |
+
dk_roo_raw = dk_roo_raw.rename(columns={'Player': 'player_names', 'Position': 'position', 'Team': 'team', 'Salary': 'salary', 'Median': 'median', 'Own': 'ownership', 'CPT_Own': 'captain ownership'})
|
| 1290 |
+
fd_roo_raw = fd_roo_raw.rename(columns={'Player': 'player_names', 'Position': 'position', 'Team': 'team', 'Salary': 'salary', 'Median': 'median', 'Own': 'ownership', 'CPT_Own': 'captain ownership'})
|
| 1291 |
+
|
| 1292 |
+
dk_sd_roo_raw = None
|
| 1293 |
+
fd_sd_roo_raw = None
|
| 1294 |
+
dk_sd_id_map = None
|
| 1295 |
+
fd_sd_id_map = None
|
| 1296 |
+
|
| 1297 |
+
return 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
|
| 1298 |
+
|
| 1299 |
+
def init_DK_MMA_lineups(type_var, slate_var, prio_var, prio_mix, mma_db_translation, lineup_num, player_var2):
|
| 1300 |
+
|
| 1301 |
+
if prio_var == 'Mix':
|
| 1302 |
+
prio_var = None
|
| 1303 |
+
|
| 1304 |
+
if type_var == 'Classic':
|
| 1305 |
+
if slate_var == 'Main':
|
| 1306 |
+
collection = nhl_db['DK_MMA_name_map']
|
| 1307 |
+
cursor = collection.find()
|
| 1308 |
+
raw_data = pd.DataFrame(list(cursor))
|
| 1309 |
+
names_dict = dict(zip(raw_data['key'], raw_data['value']))
|
| 1310 |
+
|
| 1311 |
+
collection = nhl_db['DK_MMA_seed_frame_Main Slate']
|
| 1312 |
+
if prio_var == None:
|
| 1313 |
+
if player_var2 != []:
|
| 1314 |
+
player_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
| 1315 |
+
query_conditions = []
|
| 1316 |
+
|
| 1317 |
+
for player in player_var2:
|
| 1318 |
+
# Create a condition for each player to check if they appear in any column
|
| 1319 |
+
player_condition = {'$or': [{col: player} for col in player_columns]}
|
| 1320 |
+
query_conditions.append(player_condition)
|
| 1321 |
+
|
| 1322 |
+
# Combine all player conditions with $or
|
| 1323 |
+
if query_conditions:
|
| 1324 |
+
filter_query = {'$or': query_conditions}
|
| 1325 |
+
cursor1 = collection.find(filter_query).limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1326 |
+
cursor2 = collection.find(filter_query).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1327 |
+
else:
|
| 1328 |
+
cursor1 = collection.find().limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1329 |
+
cursor2 = collection.find().sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1330 |
+
raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
|
| 1331 |
+
else:
|
| 1332 |
+
cursor1 = collection.find().limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1333 |
+
cursor2 = collection.find().sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1334 |
+
raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
|
| 1335 |
+
else:
|
| 1336 |
+
cursor = collection.find().sort(prio_var, -1).limit(lineup_num)
|
| 1337 |
+
raw_display = pd.DataFrame(list(cursor))
|
| 1338 |
+
|
| 1339 |
+
raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'])
|
| 1340 |
+
|
| 1341 |
+
raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']]
|
| 1342 |
+
dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
| 1343 |
+
# Map names
|
| 1344 |
+
raw_display[dict_columns] = raw_display[dict_columns].apply(lambda x: x.map(names_dict))
|
| 1345 |
+
elif slate_var == 'Secondary':
|
| 1346 |
+
collection = nhl_db['DK_MMA_Secondary_name_map']
|
| 1347 |
+
cursor = collection.find()
|
| 1348 |
+
raw_data = pd.DataFrame(list(cursor))
|
| 1349 |
+
names_dict = dict(zip(raw_data['key'], raw_data['value']))
|
| 1350 |
+
|
| 1351 |
+
collection = nhl_db['DK_MMA_seed_frame_Secondary Slate']
|
| 1352 |
+
if prio_var == None:
|
| 1353 |
+
if player_var2 != []:
|
| 1354 |
+
player_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
| 1355 |
+
query_conditions = []
|
| 1356 |
+
|
| 1357 |
+
for player in player_var2:
|
| 1358 |
+
# Create a condition for each player to check if they appear in any column
|
| 1359 |
+
player_condition = {'$or': [{col: player} for col in player_columns]}
|
| 1360 |
+
query_conditions.append(player_condition)
|
| 1361 |
+
|
| 1362 |
+
# Combine all player conditions with $or
|
| 1363 |
+
if query_conditions:
|
| 1364 |
+
filter_query = {'$or': query_conditions}
|
| 1365 |
+
cursor1 = collection.find(filter_query).limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1366 |
+
cursor2 = collection.find(filter_query).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1367 |
+
else:
|
| 1368 |
+
cursor1 = collection.find().limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1369 |
+
cursor2 = collection.find().sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1370 |
+
raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
|
| 1371 |
+
else:
|
| 1372 |
+
cursor1 = collection.find().limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1373 |
+
cursor2 = collection.find().sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1374 |
+
raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
|
| 1375 |
+
else:
|
| 1376 |
+
cursor = collection.find().sort(prio_var, -1).limit(lineup_num)
|
| 1377 |
+
raw_display = pd.DataFrame(list(cursor))
|
| 1378 |
+
|
| 1379 |
+
raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'])
|
| 1380 |
+
|
| 1381 |
+
raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']]
|
| 1382 |
+
dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
| 1383 |
+
# Map names
|
| 1384 |
+
raw_display[dict_columns] = raw_display[dict_columns].apply(lambda x: x.map(names_dict))
|
| 1385 |
+
elif slate_var == 'Auxiliary':
|
| 1386 |
+
collection = nhl_db['DK_MMA_Late_name_map']
|
| 1387 |
+
cursor = collection.find()
|
| 1388 |
+
raw_data = pd.DataFrame(list(cursor))
|
| 1389 |
+
names_dict = dict(zip(raw_data['key'], raw_data['value']))
|
| 1390 |
+
|
| 1391 |
+
collection = nhl_db['DK_MMA_seed_frame_Late Slate']
|
| 1392 |
+
if prio_var == None:
|
| 1393 |
+
if player_var2 != []:
|
| 1394 |
+
player_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
| 1395 |
+
query_conditions = []
|
| 1396 |
+
|
| 1397 |
+
for player in player_var2:
|
| 1398 |
+
# Create a condition for each player to check if they appear in any column
|
| 1399 |
+
player_condition = {'$or': [{col: player} for col in player_columns]}
|
| 1400 |
+
query_conditions.append(player_condition)
|
| 1401 |
+
|
| 1402 |
+
# Combine all player conditions with $or
|
| 1403 |
+
if query_conditions:
|
| 1404 |
+
filter_query = {'$or': query_conditions}
|
| 1405 |
+
cursor1 = collection.find(filter_query).limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1406 |
+
cursor2 = collection.find(filter_query).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1407 |
+
else:
|
| 1408 |
+
cursor1 = collection.find().limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1409 |
+
cursor2 = collection.find().sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1410 |
+
raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
|
| 1411 |
+
else:
|
| 1412 |
+
cursor1 = collection.find().limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1413 |
+
cursor2 = collection.find().sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1414 |
+
raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
|
| 1415 |
+
else:
|
| 1416 |
+
cursor = collection.find().sort(prio_var, -1).limit(lineup_num)
|
| 1417 |
+
raw_display = pd.DataFrame(list(cursor))
|
| 1418 |
+
|
| 1419 |
+
raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'])
|
| 1420 |
+
|
| 1421 |
+
raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']]
|
| 1422 |
+
dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
| 1423 |
+
# Map names
|
| 1424 |
+
raw_display[dict_columns] = raw_display[dict_columns].apply(lambda x: x.map(names_dict))
|
| 1425 |
+
elif type_var == 'Showdown':
|
| 1426 |
+
collection = nhl_db[mma_db_translation[slate_var]]
|
| 1427 |
+
if prio_var == None:
|
| 1428 |
+
if player_var2 != []:
|
| 1429 |
+
player_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']
|
| 1430 |
+
query_conditions = []
|
| 1431 |
+
|
| 1432 |
+
for player in player_var2:
|
| 1433 |
+
# Create a condition for each player to check if they appear in any column
|
| 1434 |
+
player_condition = {'$or': [{col: player} for col in player_columns]}
|
| 1435 |
+
query_conditions.append(player_condition)
|
| 1436 |
+
|
| 1437 |
+
# Combine all player conditions with $or
|
| 1438 |
+
if query_conditions:
|
| 1439 |
+
filter_query = {'$or': query_conditions}
|
| 1440 |
+
cursor1 = collection.find(filter_query).limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1441 |
+
cursor2 = collection.find(filter_query).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1442 |
+
else:
|
| 1443 |
+
cursor1 = collection.find().limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1444 |
+
cursor2 = collection.find().sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1445 |
+
raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
|
| 1446 |
+
else:
|
| 1447 |
+
cursor1 = collection.find().limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1448 |
+
cursor2 = collection.find().sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1449 |
+
raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
|
| 1450 |
+
else:
|
| 1451 |
+
cursor = collection.find().sort(prio_var, -1).limit(lineup_num)
|
| 1452 |
+
raw_display = pd.DataFrame(list(cursor))
|
| 1453 |
+
|
| 1454 |
+
raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'])
|
| 1455 |
+
|
| 1456 |
+
raw_display = raw_display[['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']]
|
| 1457 |
+
|
| 1458 |
+
DK_seed = raw_display.to_numpy()
|
| 1459 |
+
|
| 1460 |
+
return DK_seed
|
| 1461 |
+
|
| 1462 |
+
def init_FD_MMA_lineups(type_var, slate_var, prio_var, prio_mix, mma_db_translation, lineup_num, player_var2):
|
| 1463 |
+
|
| 1464 |
+
if prio_var == 'Mix':
|
| 1465 |
+
prio_var = None
|
| 1466 |
+
|
| 1467 |
+
if type_var == 'Classic':
|
| 1468 |
+
if slate_var == 'Main':
|
| 1469 |
+
collection = nhl_db['FD_MMA_name_map']
|
| 1470 |
+
cursor = collection.find()
|
| 1471 |
+
raw_data = pd.DataFrame(list(cursor))
|
| 1472 |
+
names_dict = dict(zip(raw_data['key'], raw_data['value']))
|
| 1473 |
+
|
| 1474 |
+
|
| 1475 |
+
collection = nhl_db['FD_MMA_seed_frame_Main Slate']
|
| 1476 |
+
if prio_var == None:
|
| 1477 |
+
if player_var2 != []:
|
| 1478 |
+
player_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
| 1479 |
+
query_conditions = []
|
| 1480 |
+
|
| 1481 |
+
for player in player_var2:
|
| 1482 |
+
# Create a condition for each player to check if they appear in any column
|
| 1483 |
+
player_condition = {'$or': [{col: player} for col in player_columns]}
|
| 1484 |
+
query_conditions.append(player_condition)
|
| 1485 |
+
|
| 1486 |
+
# Combine all player conditions with $or
|
| 1487 |
+
if query_conditions:
|
| 1488 |
+
filter_query = {'$or': query_conditions}
|
| 1489 |
+
cursor1 = collection.find(filter_query).limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1490 |
+
cursor2 = collection.find(filter_query).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1491 |
+
else:
|
| 1492 |
+
cursor1 = collection.find().limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1493 |
+
cursor2 = collection.find().sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1494 |
+
raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
|
| 1495 |
+
else:
|
| 1496 |
+
cursor1 = collection.find().limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1497 |
+
cursor2 = collection.find().sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1498 |
+
raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
|
| 1499 |
+
else:
|
| 1500 |
+
cursor = collection.find().sort(prio_var, -1).limit(lineup_num)
|
| 1501 |
+
raw_display = pd.DataFrame(list(cursor))
|
| 1502 |
+
|
| 1503 |
+
raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'])
|
| 1504 |
+
|
| 1505 |
+
raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']]
|
| 1506 |
+
dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
| 1507 |
+
# Map names
|
| 1508 |
+
raw_display[dict_columns] = raw_display[dict_columns].apply(lambda x: x.map(names_dict))
|
| 1509 |
+
elif slate_var == 'Secondary':
|
| 1510 |
+
collection = nhl_db['FD_MMA_Secondary_name_map']
|
| 1511 |
+
cursor = collection.find()
|
| 1512 |
+
raw_data = pd.DataFrame(list(cursor))
|
| 1513 |
+
names_dict = dict(zip(raw_data['key'], raw_data['value']))
|
| 1514 |
+
|
| 1515 |
+
collection = nhl_db['FD_MMA_Secondary_seed_frame_Secondary Slate']
|
| 1516 |
+
if prio_var == None:
|
| 1517 |
+
if player_var2 != []:
|
| 1518 |
+
player_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
| 1519 |
+
query_conditions = []
|
| 1520 |
+
|
| 1521 |
+
for player in player_var2:
|
| 1522 |
+
# Create a condition for each player to check if they appear in any column
|
| 1523 |
+
player_condition = {'$or': [{col: player} for col in player_columns]}
|
| 1524 |
+
query_conditions.append(player_condition)
|
| 1525 |
+
|
| 1526 |
+
# Combine all player conditions with $or
|
| 1527 |
+
if query_conditions:
|
| 1528 |
+
filter_query = {'$or': query_conditions}
|
| 1529 |
+
cursor1 = collection.find(filter_query).limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1530 |
+
cursor2 = collection.find(filter_query).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1531 |
+
else:
|
| 1532 |
+
cursor1 = collection.find().limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1533 |
+
cursor2 = collection.find().sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1534 |
+
raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
|
| 1535 |
+
else:
|
| 1536 |
+
cursor1 = collection.find().limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1537 |
+
cursor2 = collection.find().sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1538 |
+
raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
|
| 1539 |
+
else:
|
| 1540 |
+
cursor = collection.find().sort(prio_var, -1).limit(lineup_num)
|
| 1541 |
+
raw_display = pd.DataFrame(list(cursor))
|
| 1542 |
+
|
| 1543 |
+
raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'])
|
| 1544 |
+
|
| 1545 |
+
raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']]
|
| 1546 |
+
dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
| 1547 |
+
# Map names
|
| 1548 |
+
raw_display[dict_columns] = raw_display[dict_columns].apply(lambda x: x.map(names_dict))
|
| 1549 |
+
elif slate_var == 'Auxiliary':
|
| 1550 |
+
collection = nhl_db['FD_MMA_Late_name_map']
|
| 1551 |
+
cursor = collection.find()
|
| 1552 |
+
raw_data = pd.DataFrame(list(cursor))
|
| 1553 |
+
names_dict = dict(zip(raw_data['key'], raw_data['value']))
|
| 1554 |
+
|
| 1555 |
+
collection = nhl_db['FD_MMA_Late_seed_frame_Late Slate']
|
| 1556 |
+
if prio_var == None:
|
| 1557 |
+
if player_var2 != []:
|
| 1558 |
+
player_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
| 1559 |
+
query_conditions = []
|
| 1560 |
+
|
| 1561 |
+
for player in player_var2:
|
| 1562 |
+
# Create a condition for each player to check if they appear in any column
|
| 1563 |
+
player_condition = {'$or': [{col: player} for col in player_columns]}
|
| 1564 |
+
query_conditions.append(player_condition)
|
| 1565 |
+
|
| 1566 |
+
# Combine all player conditions with $or
|
| 1567 |
+
if query_conditions:
|
| 1568 |
+
filter_query = {'$or': query_conditions}
|
| 1569 |
+
cursor1 = collection.find(filter_query).limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1570 |
+
cursor2 = collection.find(filter_query).sort('Own', -1).limit(math.ceil(lineup_num = ((100 - prio_mix) / 100)))
|
| 1571 |
+
else:
|
| 1572 |
+
cursor1 = collection.find().limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1573 |
+
cursor2 = collection.find().sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1574 |
+
raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
|
| 1575 |
+
else:
|
| 1576 |
+
cursor1 = collection.find().limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1577 |
+
cursor2 = collection.find().sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1578 |
+
raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
|
| 1579 |
+
else:
|
| 1580 |
+
cursor = collection.find().sort(prio_var, -1).limit(lineup_num)
|
| 1581 |
+
raw_display = pd.DataFrame(list(cursor))
|
| 1582 |
+
|
| 1583 |
+
raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'])
|
| 1584 |
+
|
| 1585 |
+
raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']]
|
| 1586 |
+
dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']
|
| 1587 |
+
# Map names
|
| 1588 |
+
raw_display[dict_columns] = raw_display[dict_columns].apply(lambda x: x.map(names_dict))
|
| 1589 |
+
|
| 1590 |
+
elif type_var == 'Showdown':
|
| 1591 |
+
collection = nhl_db[mma_db_translation[slate_var]]
|
| 1592 |
+
if prio_var == None:
|
| 1593 |
+
if player_var2 != []:
|
| 1594 |
+
player_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']
|
| 1595 |
+
query_conditions = []
|
| 1596 |
+
|
| 1597 |
+
for player in player_var2:
|
| 1598 |
+
# Create a condition for each player to check if they appear in any column
|
| 1599 |
+
player_condition = {'$or': [{col: player} for col in player_columns]}
|
| 1600 |
+
query_conditions.append(player_condition)
|
| 1601 |
+
|
| 1602 |
+
# Combine all player conditions with $or
|
| 1603 |
+
if query_conditions:
|
| 1604 |
+
filter_query = {'$or': query_conditions}
|
| 1605 |
+
cursor1 = collection.find(filter_query).limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1606 |
+
cursor2 = collection.find(filter_query).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1607 |
+
else:
|
| 1608 |
+
cursor1 = collection.find().limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1609 |
+
cursor2 = collection.find().sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1610 |
+
raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
|
| 1611 |
+
else:
|
| 1612 |
+
cursor1 = collection.find().limit(math.ceil(lineup_num * (prio_mix / 100)))
|
| 1613 |
+
cursor2 = collection.find().sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100)))
|
| 1614 |
+
raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))])
|
| 1615 |
+
else:
|
| 1616 |
+
cursor = collection.find().sort(prio_var, -1).limit(lineup_num)
|
| 1617 |
+
raw_display = pd.DataFrame(list(cursor))
|
| 1618 |
+
|
| 1619 |
+
raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'])
|
| 1620 |
+
|
| 1621 |
+
raw_display = raw_display[['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']]
|
| 1622 |
+
|
| 1623 |
+
FD_seed = raw_display.to_numpy()
|
| 1624 |
+
|
| 1625 |
return FD_seed
|