James McCool commited on
Commit
fac0021
·
1 Parent(s): 5307518

Updating PGA for DK/DF availbaility

Browse files
Files changed (3) hide show
  1. app.py +1 -6
  2. database.py +3 -2
  3. 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', 'NCAAF', 'MMA', 'CS2', 'LOL', 'COD', 'TENNIS', 'NASCAR', 'GOLF', 'WNBA', 'F1'], key='sport_var')
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['Site'] == 'Draftkings']
1682
- fd_roo_raw = raw_display[raw_display['Site'] == 'Draftkings']
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':