James McCool
commited on
Commit
·
fac0021
1
Parent(s):
5307518
Updating PGA for DK/DF availbaility
Browse files- app.py +1 -6
- database.py +3 -2
- database_queries.py +74 -6
app.py
CHANGED
|
@@ -6,8 +6,6 @@ from rapidfuzz import process
|
|
| 6 |
from collections import Counter
|
| 7 |
import io
|
| 8 |
|
| 9 |
-
## import global functions
|
| 10 |
-
## Need to make sure that I take all functions from here and give them a home
|
| 11 |
from global_func.clean_player_name import clean_player_name
|
| 12 |
from global_func.load_file import load_file
|
| 13 |
from global_func.load_ss_file import load_ss_file
|
|
@@ -1172,7 +1170,7 @@ with st.container():
|
|
| 1172 |
site_var = st.selectbox("Select Site", ['Draftkings', 'Fanduel'])
|
| 1173 |
|
| 1174 |
with col3:
|
| 1175 |
-
sport_var = st.selectbox("Select Sport", ['NFL', 'MLB', 'NBA', 'NHL', '
|
| 1176 |
|
| 1177 |
with col4:
|
| 1178 |
type_var = st.selectbox("Select Game Type", ['Classic', 'Showdown'])
|
|
@@ -1347,7 +1345,6 @@ except:
|
|
| 1347 |
)
|
| 1348 |
|
| 1349 |
# Data Load Tab Functions
|
| 1350 |
-
# I am losing my mind
|
| 1351 |
if selected_tab == 'Data Load':
|
| 1352 |
col1, col2, col3 = st.columns(3)
|
| 1353 |
|
|
@@ -1593,13 +1590,11 @@ if selected_tab == 'Data Load':
|
|
| 1593 |
|
| 1594 |
if st.session_state['portfolio'] is not None:
|
| 1595 |
|
| 1596 |
-
# Optimize data types early for memory efficiency
|
| 1597 |
st.session_state['portfolio'] = optimize_dataframe_dtypes(st.session_state['portfolio'])
|
| 1598 |
|
| 1599 |
st.success('Portfolio file loaded successfully!')
|
| 1600 |
for col in st.session_state['portfolio'].select_dtypes(include=['object', 'category']).columns:
|
| 1601 |
if st.session_state['portfolio'][col].dtype == 'category':
|
| 1602 |
-
# Handle categorical columns
|
| 1603 |
st.session_state['portfolio'][col] = st.session_state['portfolio'][col].cat.rename_categories(
|
| 1604 |
lambda x: player_right_names_mlb.get(x, x) if x in player_wrong_names_mlb else x
|
| 1605 |
)
|
|
|
|
| 6 |
from collections import Counter
|
| 7 |
import io
|
| 8 |
|
|
|
|
|
|
|
| 9 |
from global_func.clean_player_name import clean_player_name
|
| 10 |
from global_func.load_file import load_file
|
| 11 |
from global_func.load_ss_file import load_ss_file
|
|
|
|
| 1170 |
site_var = st.selectbox("Select Site", ['Draftkings', 'Fanduel'])
|
| 1171 |
|
| 1172 |
with col3:
|
| 1173 |
+
sport_var = st.selectbox("Select Sport", ['NFL', 'MLB', 'NBA', 'NHL', 'MMA', 'NASCAR', 'GOLF'], key='sport_var')
|
| 1174 |
|
| 1175 |
with col4:
|
| 1176 |
type_var = st.selectbox("Select Game Type", ['Classic', 'Showdown'])
|
|
|
|
| 1345 |
)
|
| 1346 |
|
| 1347 |
# Data Load Tab Functions
|
|
|
|
| 1348 |
if selected_tab == 'Data Load':
|
| 1349 |
col1, col2, col3 = st.columns(3)
|
| 1350 |
|
|
|
|
| 1590 |
|
| 1591 |
if st.session_state['portfolio'] is not None:
|
| 1592 |
|
|
|
|
| 1593 |
st.session_state['portfolio'] = optimize_dataframe_dtypes(st.session_state['portfolio'])
|
| 1594 |
|
| 1595 |
st.success('Portfolio file loaded successfully!')
|
| 1596 |
for col in st.session_state['portfolio'].select_dtypes(include=['object', 'category']).columns:
|
| 1597 |
if st.session_state['portfolio'][col].dtype == 'category':
|
|
|
|
| 1598 |
st.session_state['portfolio'][col] = st.session_state['portfolio'][col].cat.rename_categories(
|
| 1599 |
lambda x: player_right_names_mlb.get(x, x) if x in player_wrong_names_mlb else x
|
| 1600 |
)
|
database.py
CHANGED
|
@@ -16,7 +16,8 @@ def init_conn():
|
|
| 16 |
nhl_db = client["NHL_Database"]
|
| 17 |
mma_db = client["MMA_Database"]
|
| 18 |
pga_db = client["PGA_Database"]
|
|
|
|
| 19 |
|
| 20 |
-
return nfl_db, salaries_db, nba_db, mlb_db, nhl_db, mma_db, pga_db
|
| 21 |
|
| 22 |
-
nfl_db, salaries_db, nba_db, mlb_db, nhl_db, mma_db, pga_db = init_conn()
|
|
|
|
| 16 |
nhl_db = client["NHL_Database"]
|
| 17 |
mma_db = client["MMA_Database"]
|
| 18 |
pga_db = client["PGA_Database"]
|
| 19 |
+
nascar_db = client['NASCAR_Database']
|
| 20 |
|
| 21 |
+
return nfl_db, salaries_db, nba_db, mlb_db, nhl_db, mma_db, pga_db, nascar_db
|
| 22 |
|
| 23 |
+
nfl_db, salaries_db, nba_db, mlb_db, nhl_db, mma_db, pga_db, nascar_db = init_conn()
|
database_queries.py
CHANGED
|
@@ -1672,20 +1672,19 @@ def init_pga_baselines(type_var: str, site_var: str, slate_var: str):
|
|
| 1672 |
cursor = collection.find()
|
| 1673 |
|
| 1674 |
raw_display = pd.DataFrame(list(cursor))
|
| 1675 |
-
raw_display = raw_display[['Player', 'Position', 'Salary', 'Median', 'Own', 'CPT_Own', 'player_id']]
|
| 1676 |
raw_display['Team'] = 'PGA'
|
| 1677 |
-
raw_display['Site'] = site_var
|
| 1678 |
raw_display = raw_display.rename(columns={"player_id": "player_ID"})
|
| 1679 |
raw_display['Median'] = raw_display['Median'].replace('', 0).astype(float)
|
| 1680 |
raw_display = raw_display.loc[raw_display['Median'] > 0]
|
| 1681 |
-
dk_roo_raw = raw_display[raw_display['
|
| 1682 |
-
fd_roo_raw = raw_display[raw_display['
|
| 1683 |
dk_id_map = dict(zip(dk_roo_raw['Player'], dk_roo_raw['player_ID']))
|
| 1684 |
fd_id_map = dict(zip(fd_roo_raw['Player'], fd_roo_raw['player_ID']))
|
| 1685 |
raw_display = raw_display.apply(pd.to_numeric, errors='ignore')
|
| 1686 |
|
| 1687 |
-
dk_roo_raw = dk_roo_raw.drop(columns=['player_ID'])
|
| 1688 |
-
fd_roo_raw = fd_roo_raw.drop(columns=['player_ID'])
|
| 1689 |
|
| 1690 |
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'})
|
| 1691 |
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'})
|
|
@@ -2039,6 +2038,75 @@ def init_FD_PGA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal
|
|
| 2039 |
|
| 2040 |
return FD_seed
|
| 2041 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2042 |
def init_DK_NASCAR_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, salary_min, salary_max, player_var2):
|
| 2043 |
|
| 2044 |
if prio_var == 'Mix':
|
|
|
|
| 1672 |
cursor = collection.find()
|
| 1673 |
|
| 1674 |
raw_display = pd.DataFrame(list(cursor))
|
| 1675 |
+
raw_display = raw_display[['Player', 'Position', 'Salary', 'Median', 'Own', 'CPT_Own', 'player_id', 'site']]
|
| 1676 |
raw_display['Team'] = 'PGA'
|
|
|
|
| 1677 |
raw_display = raw_display.rename(columns={"player_id": "player_ID"})
|
| 1678 |
raw_display['Median'] = raw_display['Median'].replace('', 0).astype(float)
|
| 1679 |
raw_display = raw_display.loc[raw_display['Median'] > 0]
|
| 1680 |
+
dk_roo_raw = raw_display[raw_display['site'] == 'Draftkings']
|
| 1681 |
+
fd_roo_raw = raw_display[raw_display['site'] == 'Fanduel']
|
| 1682 |
dk_id_map = dict(zip(dk_roo_raw['Player'], dk_roo_raw['player_ID']))
|
| 1683 |
fd_id_map = dict(zip(fd_roo_raw['Player'], fd_roo_raw['player_ID']))
|
| 1684 |
raw_display = raw_display.apply(pd.to_numeric, errors='ignore')
|
| 1685 |
|
| 1686 |
+
dk_roo_raw = dk_roo_raw.drop(columns=['player_ID', 'site'])
|
| 1687 |
+
fd_roo_raw = fd_roo_raw.drop(columns=['player_ID', 'site'])
|
| 1688 |
|
| 1689 |
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'})
|
| 1690 |
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'})
|
|
|
|
| 2038 |
|
| 2039 |
return FD_seed
|
| 2040 |
|
| 2041 |
+
def init_nascar_baselines(type_var: str, site_var: str, slate_var: str):
|
| 2042 |
+
|
| 2043 |
+
if slate_var == 'Main':
|
| 2044 |
+
slate_var = 'Main Slate'
|
| 2045 |
+
elif slate_var == 'Secondary':
|
| 2046 |
+
slate_var = 'Secondary Slate'
|
| 2047 |
+
elif slate_var == 'Auxiliary':
|
| 2048 |
+
slate_var = 'Late Slate'
|
| 2049 |
+
|
| 2050 |
+
if type_var == 'Showdown':
|
| 2051 |
+
collection = nascar_db["Player_Level_Showdown_ROO"]
|
| 2052 |
+
cursor = collection.find()
|
| 2053 |
+
|
| 2054 |
+
raw_display = pd.DataFrame(list(cursor))
|
| 2055 |
+
raw_display = raw_display[['Player', 'Position', 'Salary', 'Median', 'Own', 'CPT_Own', 'player_id', 'slate', 'site', 'version']]
|
| 2056 |
+
raw_display['Team'] = 'NASCAR'
|
| 2057 |
+
raw_display['Median'] = raw_display['Median'].replace('', 0).astype(float)
|
| 2058 |
+
raw_display = raw_display.rename(columns={"player_id": "player_ID"})
|
| 2059 |
+
raw_display = raw_display.loc[raw_display['Median'] > 0]
|
| 2060 |
+
raw_display = raw_display.apply(pd.to_numeric, errors='ignore')
|
| 2061 |
+
sd_raw = raw_display.sort_values(by='Median', ascending=False)
|
| 2062 |
+
dk_sd_roo_raw = sd_raw[sd_raw['site'] == 'Draftkings']
|
| 2063 |
+
dk_sd_id_map = dict(zip(dk_sd_roo_raw['Player'], dk_sd_roo_raw['player_ID']))
|
| 2064 |
+
fd_sd_roo_raw = sd_raw[sd_raw['site'] == 'Fanduel']
|
| 2065 |
+
fd_sd_id_map = dict(zip(fd_sd_roo_raw['Player'], fd_sd_roo_raw['player_ID']))
|
| 2066 |
+
fd_sd_roo_raw['player_ID'] = fd_sd_roo_raw['player_ID'].astype(str)
|
| 2067 |
+
fd_sd_roo_raw['player_ID'] = fd_sd_roo_raw['player_ID'].str.rsplit('-', n=1).str[0].astype(str)
|
| 2068 |
+
|
| 2069 |
+
dk_sd_roo_raw = dk_sd_roo_raw.drop(columns=['player_ID', 'slate', 'version', 'site'])
|
| 2070 |
+
fd_sd_roo_raw = fd_sd_roo_raw.drop(columns=['player_ID', 'slate', 'version', 'site'])
|
| 2071 |
+
|
| 2072 |
+
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'})
|
| 2073 |
+
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'})
|
| 2074 |
+
|
| 2075 |
+
dk_roo_raw = None
|
| 2076 |
+
fd_roo_raw = None
|
| 2077 |
+
dk_id_map = None
|
| 2078 |
+
fd_id_map = None
|
| 2079 |
+
|
| 2080 |
+
else:
|
| 2081 |
+
collection = nascar_db["Player_Level_ROO"]
|
| 2082 |
+
cursor = collection.find()
|
| 2083 |
+
|
| 2084 |
+
raw_display = pd.DataFrame(list(cursor))
|
| 2085 |
+
raw_display = raw_display[['Player', 'Position', 'Salary', 'Median', 'Own', 'CPT_Own', 'player_id']]
|
| 2086 |
+
raw_display['Team'] = 'NASCAR'
|
| 2087 |
+
raw_display['Site'] = site_var
|
| 2088 |
+
raw_display = raw_display.rename(columns={"player_id": "player_ID"})
|
| 2089 |
+
raw_display['Median'] = raw_display['Median'].replace('', 0).astype(float)
|
| 2090 |
+
raw_display = raw_display.loc[raw_display['Median'] > 0]
|
| 2091 |
+
dk_roo_raw = raw_display[raw_display['Site'] == 'Draftkings']
|
| 2092 |
+
fd_roo_raw = raw_display[raw_display['Site'] == 'Draftkings']
|
| 2093 |
+
dk_id_map = dict(zip(dk_roo_raw['Player'], dk_roo_raw['player_ID']))
|
| 2094 |
+
fd_id_map = dict(zip(fd_roo_raw['Player'], fd_roo_raw['player_ID']))
|
| 2095 |
+
raw_display = raw_display.apply(pd.to_numeric, errors='ignore')
|
| 2096 |
+
|
| 2097 |
+
dk_roo_raw = dk_roo_raw.drop(columns=['player_ID'])
|
| 2098 |
+
fd_roo_raw = fd_roo_raw.drop(columns=['player_ID'])
|
| 2099 |
+
|
| 2100 |
+
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'})
|
| 2101 |
+
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'})
|
| 2102 |
+
|
| 2103 |
+
dk_sd_roo_raw = None
|
| 2104 |
+
fd_sd_roo_raw = None
|
| 2105 |
+
dk_sd_id_map = None
|
| 2106 |
+
fd_sd_id_map = None
|
| 2107 |
+
|
| 2108 |
+
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
|
| 2109 |
+
|
| 2110 |
def init_DK_NASCAR_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, salary_min, salary_max, player_var2):
|
| 2111 |
|
| 2112 |
if prio_var == 'Mix':
|