James McCool
commited on
Commit
·
560df46
1
Parent(s):
9ffa1eb
Refine data processing in app.py by filtering for 'Main Slate' and 'overall' versions, and enhance data export functionality with player ID mapping for DraftKings and FanDuel. Improved session state handling for working seeds.
Browse files
app.py
CHANGED
@@ -108,6 +108,8 @@ def init_baselines():
|
|
108 |
cursor = collection.find()
|
109 |
|
110 |
raw_display = pd.DataFrame(list(cursor))
|
|
|
|
|
111 |
dk_raw = raw_display[['Player', 'Position', 'Team', 'Opp', 'Salary', 'Floor', 'Median', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '20+%', '2x%', '3x%', '4x%',
|
112 |
'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
|
113 |
dk_raw['STDev'] = (dk_raw['Ceiling'] - dk_raw['Floor']) / 4
|
@@ -116,6 +118,8 @@ def init_baselines():
|
|
116 |
cursor = collection.find()
|
117 |
|
118 |
raw_display = pd.DataFrame(list(cursor))
|
|
|
|
|
119 |
fd_raw = raw_display[['Player', 'Position', 'Team', 'Opp', 'Salary', 'Floor', 'Median', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '20+%', '2x%', '3x%', '4x%',
|
120 |
'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
|
121 |
fd_raw['STDev'] = (fd_raw['Ceiling'] - fd_raw['Floor']) / 4
|
@@ -174,6 +178,8 @@ def sim_contest(Sim_size, seed_frame, maps_dict, sharp_split, Contest_Size):
|
|
174 |
return Sim_Winners
|
175 |
|
176 |
dk_raw, fd_raw = init_baselines()
|
|
|
|
|
177 |
|
178 |
tab1, tab2 = st.tabs(['Contest Sims', 'Data Export'])
|
179 |
with tab2:
|
@@ -186,6 +192,8 @@ with tab2:
|
|
186 |
DK_seed = init_DK_seed_frames()
|
187 |
FD_seed = init_FD_seed_frames()
|
188 |
dk_raw, fd_raw = init_baselines()
|
|
|
|
|
189 |
|
190 |
slate_var1 = st.radio("Which data are you loading?", ('Main Slate', 'Secondary Slate'))
|
191 |
site_var1 = st.radio("What site are you working with?", ('Draftkings', 'Fanduel'))
|
@@ -233,7 +241,16 @@ with tab2:
|
|
233 |
|
234 |
|
235 |
if st.button("Prepare data export", key='data_export'):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
236 |
data_export = st.session_state.working_seed.copy()
|
|
|
|
|
237 |
st.download_button(
|
238 |
label="Export optimals set",
|
239 |
data=convert_df(data_export),
|
@@ -279,6 +296,9 @@ with tab1:
|
|
279 |
DK_seed = init_DK_seed_frames()
|
280 |
FD_seed = init_FD_seed_frames()
|
281 |
dk_raw, fd_raw = init_baselines()
|
|
|
|
|
|
|
282 |
sim_slate_var1 = st.radio("Which data are you loading?", ('Main Slate', 'Secondary Slate'), key='sim_slate_var1')
|
283 |
sim_site_var1 = st.radio("What site are you working with?", ('Draftkings', 'Fanduel'), key='sim_site_var1')
|
284 |
if sim_site_var1 == 'Draftkings':
|
@@ -390,6 +410,8 @@ with tab1:
|
|
390 |
|
391 |
# Data Copying
|
392 |
st.session_state.Sim_Winner_Export = Sim_Winner_Frame.copy()
|
|
|
|
|
393 |
|
394 |
# Data Copying
|
395 |
st.session_state.Sim_Winner_Display = Sim_Winner_Frame.copy()
|
|
|
108 |
cursor = collection.find()
|
109 |
|
110 |
raw_display = pd.DataFrame(list(cursor))
|
111 |
+
raw_display = raw_display[raw_display['slate'] == 'Main Slate']
|
112 |
+
raw_display = raw_display[raw_display['version'] == 'overall']
|
113 |
dk_raw = raw_display[['Player', 'Position', 'Team', 'Opp', 'Salary', 'Floor', 'Median', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '20+%', '2x%', '3x%', '4x%',
|
114 |
'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
|
115 |
dk_raw['STDev'] = (dk_raw['Ceiling'] - dk_raw['Floor']) / 4
|
|
|
118 |
cursor = collection.find()
|
119 |
|
120 |
raw_display = pd.DataFrame(list(cursor))
|
121 |
+
raw_display = raw_display[raw_display['slate'] == 'Main Slate']
|
122 |
+
raw_display = raw_display[raw_display['version'] == 'overall']
|
123 |
fd_raw = raw_display[['Player', 'Position', 'Team', 'Opp', 'Salary', 'Floor', 'Median', 'Ceiling', 'Top_finish', 'Top_5_finish', 'Top_10_finish', '20+%', '2x%', '3x%', '4x%',
|
124 |
'Own', 'Small_Field_Own', 'Large_Field_Own', 'Cash_Field_Own', 'CPT_Own', 'LevX', 'version', 'slate', 'timestamp', 'player_id', 'site']]
|
125 |
fd_raw['STDev'] = (fd_raw['Ceiling'] - fd_raw['Floor']) / 4
|
|
|
178 |
return Sim_Winners
|
179 |
|
180 |
dk_raw, fd_raw = init_baselines()
|
181 |
+
dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_id))
|
182 |
+
fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_id))
|
183 |
|
184 |
tab1, tab2 = st.tabs(['Contest Sims', 'Data Export'])
|
185 |
with tab2:
|
|
|
192 |
DK_seed = init_DK_seed_frames()
|
193 |
FD_seed = init_FD_seed_frames()
|
194 |
dk_raw, fd_raw = init_baselines()
|
195 |
+
dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_id))
|
196 |
+
fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_id))
|
197 |
|
198 |
slate_var1 = st.radio("Which data are you loading?", ('Main Slate', 'Secondary Slate'))
|
199 |
site_var1 = st.radio("What site are you working with?", ('Draftkings', 'Fanduel'))
|
|
|
241 |
|
242 |
|
243 |
if st.button("Prepare data export", key='data_export'):
|
244 |
+
if 'working_seed' in st.session_state:
|
245 |
+
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 11], team_var2)]
|
246 |
+
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 12], stack_var2)]
|
247 |
+
elif 'working_seed' not in st.session_state:
|
248 |
+
st.session_state.working_seed = DK_seed.copy()
|
249 |
+
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 11], team_var2)]
|
250 |
+
st.session_state.working_seed = st.session_state.working_seed[np.isin(st.session_state.working_seed[:, 12], stack_var2)]
|
251 |
data_export = st.session_state.working_seed.copy()
|
252 |
+
for col in range(9):
|
253 |
+
data_export[:, col] = np.array([dk_id_dict.get(x, x) for x in data_export[:, col]])
|
254 |
st.download_button(
|
255 |
label="Export optimals set",
|
256 |
data=convert_df(data_export),
|
|
|
296 |
DK_seed = init_DK_seed_frames()
|
297 |
FD_seed = init_FD_seed_frames()
|
298 |
dk_raw, fd_raw = init_baselines()
|
299 |
+
dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_id))
|
300 |
+
fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_id))
|
301 |
+
|
302 |
sim_slate_var1 = st.radio("Which data are you loading?", ('Main Slate', 'Secondary Slate'), key='sim_slate_var1')
|
303 |
sim_site_var1 = st.radio("What site are you working with?", ('Draftkings', 'Fanduel'), key='sim_site_var1')
|
304 |
if sim_site_var1 == 'Draftkings':
|
|
|
410 |
|
411 |
# Data Copying
|
412 |
st.session_state.Sim_Winner_Export = Sim_Winner_Frame.copy()
|
413 |
+
for col in st.session_state.Sim_Winner_Export.iloc[:, 0:9].columns:
|
414 |
+
st.session_state.Sim_Winner_Export[col] = st.session_state.Sim_Winner_Export[col].map(dk_id_dict)
|
415 |
|
416 |
# Data Copying
|
417 |
st.session_state.Sim_Winner_Display = Sim_Winner_Frame.copy()
|