James McCool
commited on
Commit
·
a8cf688
1
Parent(s):
e7e2a49
Enhance contest data handling in app.py and related functions for improved functionality
Browse files- Updated the load_contest_file function to include 'Salary' and 'Team' columns, enhancing the data structure for contest entries.
- Modified the grab_contest_data function to capture additional player information, including salary and current team, improving data completeness.
- Adjusted app.py to utilize the new data structures, ensuring that session state variables are populated with the latest contest data.
- These changes contribute to ongoing efforts to improve data integrity and user experience within the application.
- app.py +5 -1
- global_func/grab_contest_data.py +3 -1
- global_func/load_contest_file.py +5 -3
app.py
CHANGED
@@ -86,7 +86,7 @@ with tab1:
|
|
86 |
del st.session_state['Contest']
|
87 |
|
88 |
if 'Contest_file' in st.session_state and 'Adj_Contest' not in st.session_state:
|
89 |
-
st.session_state['Contest'], st.session_state['ownership_df'], st.session_state['actual_df'], st.session_state['entry_list'] = load_contest_file(st.session_state['Contest_file'], sport_select)
|
90 |
st.session_state['Contest'] = st.session_state['Contest'].dropna(how='all')
|
91 |
st.session_state['Contest'] = st.session_state['Contest'].reset_index(drop=True)
|
92 |
if st.session_state['Contest'] is not None:
|
@@ -96,8 +96,12 @@ with tab1:
|
|
96 |
if 'Contest_file' in st.session_state:
|
97 |
st.session_state['ownership_dict'] = dict(zip(st.session_state['ownership_df']['Player'], st.session_state['ownership_df']['Own']))
|
98 |
st.session_state['actual_dict'] = dict(zip(st.session_state['actual_df']['Player'], st.session_state['actual_df']['FPTS']))
|
|
|
|
|
99 |
st.write(st.session_state['ownership_dict'])
|
100 |
st.write(st.session_state['actual_dict'])
|
|
|
|
|
101 |
|
102 |
|
103 |
with tab2:
|
|
|
86 |
del st.session_state['Contest']
|
87 |
|
88 |
if 'Contest_file' in st.session_state and 'Adj_Contest' not in st.session_state:
|
89 |
+
st.session_state['Contest'], st.session_state['ownership_df'], st.session_state['actual_df'], st.session_state['salary_df'], st.session_state['team_df'], st.session_state['entry_list'] = load_contest_file(st.session_state['Contest_file'], sport_select)
|
90 |
st.session_state['Contest'] = st.session_state['Contest'].dropna(how='all')
|
91 |
st.session_state['Contest'] = st.session_state['Contest'].reset_index(drop=True)
|
92 |
if st.session_state['Contest'] is not None:
|
|
|
96 |
if 'Contest_file' in st.session_state:
|
97 |
st.session_state['ownership_dict'] = dict(zip(st.session_state['ownership_df']['Player'], st.session_state['ownership_df']['Own']))
|
98 |
st.session_state['actual_dict'] = dict(zip(st.session_state['actual_df']['Player'], st.session_state['actual_df']['FPTS']))
|
99 |
+
st.session_state['salary_dict'] = dict(zip(st.session_state['salary_df']['Player'], st.session_state['salary_df']['Salary']))
|
100 |
+
st.session_state['team_dict'] = dict(zip(st.session_state['team_df']['Player'], st.session_state['team_df']['Team']))
|
101 |
st.write(st.session_state['ownership_dict'])
|
102 |
st.write(st.session_state['actual_dict'])
|
103 |
+
st.write(st.session_state['salary_dict'])
|
104 |
+
st.write(st.session_state['team_dict'])
|
105 |
|
106 |
|
107 |
with tab2:
|
global_func/grab_contest_data.py
CHANGED
@@ -37,6 +37,8 @@ def grab_contest_data(sport, contest_name, contest_id_map, contest_date):
|
|
37 |
player_data.append({
|
38 |
'fullName': player_info['fullName'],
|
39 |
'playerId': player_info['playerId'],
|
|
|
|
|
40 |
'rosterPosition': player_info['rosterPosition'],
|
41 |
'ownership': player_info['ownership'],
|
42 |
'actualPoints': player_info['actualPoints']
|
@@ -44,7 +46,7 @@ def grab_contest_data(sport, contest_name, contest_id_map, contest_date):
|
|
44 |
|
45 |
players_df = pd.DataFrame(player_data)
|
46 |
players_df = players_df.sort_values(by='ownership', ascending=False).reset_index(drop=True)
|
47 |
-
players_df = players_df.rename(columns={'fullName': 'Player', 'rosterPosition': 'Roster Position', 'ownership': '%Drafted', 'actualPoints': 'FPTS'})
|
48 |
pid_map = dict(zip(players_df['playerId'].astype(str), players_df['Player']))
|
49 |
|
50 |
for lineup_hash, lineup_info in lineups_json['lineups'].items():
|
|
|
37 |
player_data.append({
|
38 |
'fullName': player_info['fullName'],
|
39 |
'playerId': player_info['playerId'],
|
40 |
+
'salary': player_info['salary'],
|
41 |
+
'currentTeam': player_info['currentTeam'],
|
42 |
'rosterPosition': player_info['rosterPosition'],
|
43 |
'ownership': player_info['ownership'],
|
44 |
'actualPoints': player_info['actualPoints']
|
|
|
46 |
|
47 |
players_df = pd.DataFrame(player_data)
|
48 |
players_df = players_df.sort_values(by='ownership', ascending=False).reset_index(drop=True)
|
49 |
+
players_df = players_df.rename(columns={'fullName': 'Player', 'rosterPosition': 'Roster Position', 'ownership': '%Drafted', 'actualPoints': 'FPTS', 'salary': 'Salary', 'currentTeam': 'Team'})
|
50 |
pid_map = dict(zip(players_df['playerId'].astype(str), players_df['Player']))
|
51 |
|
52 |
for lineup_hash, lineup_info in lineups_json['lineups'].items():
|
global_func/load_contest_file.py
CHANGED
@@ -17,7 +17,7 @@ def load_contest_file(upload, sport):
|
|
17 |
except:
|
18 |
raw_df = upload
|
19 |
|
20 |
-
df = raw_df[['EntryId', 'EntryName', 'TimeRemaining', 'Points', 'Lineup', 'Player', 'Roster Position', '%Drafted', 'FPTS']]
|
21 |
df = df.rename(columns={'Roster Position': 'Pos', '%Drafted': 'Own'})
|
22 |
|
23 |
# Split EntryName into base name and entry count
|
@@ -52,12 +52,14 @@ def load_contest_file(upload, sport):
|
|
52 |
df['Own'] = df['Own'].astype(float)
|
53 |
ownership_df = df[['Player', 'Own']]
|
54 |
fpts_df = df[['Player', 'FPTS']]
|
55 |
-
|
|
|
|
|
56 |
cleaned_df = cleaned_df[['BaseName', 'EntryCount', 'SP1', 'SP2', 'C', '1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3']]
|
57 |
entry_list = list(set(df['BaseName']))
|
58 |
entry_list.sort()
|
59 |
|
60 |
-
return cleaned_df, ownership_df, fpts_df, entry_list
|
61 |
except Exception as e:
|
62 |
st.error(f'Error loading file: {str(e)}')
|
63 |
return None
|
|
|
17 |
except:
|
18 |
raw_df = upload
|
19 |
|
20 |
+
df = raw_df[['EntryId', 'EntryName', 'TimeRemaining', 'Points', 'Lineup', 'Player', 'Roster Position', '%Drafted', 'FPTS', 'Salary', 'Team']]
|
21 |
df = df.rename(columns={'Roster Position': 'Pos', '%Drafted': 'Own'})
|
22 |
|
23 |
# Split EntryName into base name and entry count
|
|
|
52 |
df['Own'] = df['Own'].astype(float)
|
53 |
ownership_df = df[['Player', 'Own']]
|
54 |
fpts_df = df[['Player', 'FPTS']]
|
55 |
+
salary_df = df[['Player', 'Salary']]
|
56 |
+
team_df = df[['Player', 'Team']]
|
57 |
+
cleaned_df = df.drop(columns=['EntryId', 'EntryName', 'TimeRemaining', 'Points', 'Lineup', 'Player', 'Pos', 'Own', 'FPTS', 'Salary', 'Team'])
|
58 |
cleaned_df = cleaned_df[['BaseName', 'EntryCount', 'SP1', 'SP2', 'C', '1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3']]
|
59 |
entry_list = list(set(df['BaseName']))
|
60 |
entry_list.sort()
|
61 |
|
62 |
+
return cleaned_df, ownership_df, fpts_df, salary_df, team_df, entry_list
|
63 |
except Exception as e:
|
64 |
st.error(f'Error loading file: {str(e)}')
|
65 |
return None
|