Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -837,6 +837,26 @@ with tab1:
|
|
837 |
with tab2:
|
838 |
col1, col2 = st.columns([1, 7])
|
839 |
with col1:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
840 |
st.info(t_stamp)
|
841 |
if st.button("Load/Reset Data", key='reset1'):
|
842 |
st.cache_data.clear()
|
@@ -889,28 +909,29 @@ with tab2:
|
|
889 |
sharp_split = .75
|
890 |
Strength_var = .01
|
891 |
scaling_var = 15
|
892 |
-
|
893 |
-
st.session_state.Sim_Winner_Display = pd.DataFrame(columns=['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST', 'User/Field', 'Salary', 'Projection', 'Own', 'Fantasy', 'GPP_Proj'])
|
894 |
-
if 'Sim_Winner_Frame' not in st.session_state:
|
895 |
-
st.session_state.Sim_Winner_Frame = pd.DataFrame(columns=['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST', 'User/Field', 'Salary', 'Projection', 'Own', 'Fantasy', 'GPP_Proj'])
|
896 |
-
if 'Sim_Winner_Export' not in st.session_state:
|
897 |
-
st.session_state.Sim_Winner_Export = pd.DataFrame(columns=['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST', 'User/Field', 'Salary', 'Projection', 'Own', 'Fantasy', 'GPP_Proj'])
|
898 |
-
if 'player_freq' not in st.session_state:
|
899 |
-
st.session_state.player_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
|
900 |
-
if 'qb_freq' not in st.session_state:
|
901 |
-
st.session_state.qb_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
|
902 |
-
if 'rb_freq' not in st.session_state:
|
903 |
-
st.session_state.rb_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
|
904 |
-
if 'wr_freq' not in st.session_state:
|
905 |
-
st.session_state.wr_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
|
906 |
-
if 'te_freq' not in st.session_state:
|
907 |
-
st.session_state.te_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
|
908 |
-
if 'flex_freq' not in st.session_state:
|
909 |
-
st.session_state.flex_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
|
910 |
-
if 'dst_freq' not in st.session_state:
|
911 |
-
st.session_state.dst_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
|
912 |
with col2:
|
913 |
with st.container():
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
914 |
if st.button("Simulate Contest"):
|
915 |
try:
|
916 |
del dst_freq
|
@@ -1357,81 +1378,90 @@ with tab2:
|
|
1357 |
|
1358 |
with st.container():
|
1359 |
simulate_container = st.empty()
|
1360 |
-
|
1361 |
-
|
1362 |
-
|
1363 |
-
|
1364 |
-
|
1365 |
-
|
1366 |
-
|
1367 |
-
|
1368 |
-
|
1369 |
-
|
1370 |
-
|
1371 |
-
|
1372 |
-
|
1373 |
-
|
1374 |
-
|
1375 |
-
|
1376 |
-
|
1377 |
-
|
|
|
|
|
1378 |
|
1379 |
with st.container():
|
1380 |
freq_container = st.empty()
|
1381 |
tab1, tab2, tab3, tab4, tab5, tab6, tab7 = st.tabs(['Overall Exposures', 'QB Exposures', 'RB Exposures', 'WR Exposures', 'TE Exposures', 'FLEX Exposures', 'DST Exposures'])
|
1382 |
with tab1:
|
1383 |
-
|
1384 |
-
|
1385 |
-
|
1386 |
-
|
1387 |
-
|
1388 |
-
|
1389 |
-
|
|
|
1390 |
with tab2:
|
1391 |
-
|
1392 |
-
|
1393 |
-
|
1394 |
-
|
1395 |
-
|
1396 |
-
|
1397 |
-
|
|
|
1398 |
with tab3:
|
1399 |
-
|
1400 |
-
|
1401 |
-
|
1402 |
-
|
1403 |
-
|
1404 |
-
|
1405 |
-
|
|
|
1406 |
with tab4:
|
1407 |
-
|
1408 |
-
|
1409 |
-
|
1410 |
-
|
1411 |
-
|
1412 |
-
|
1413 |
-
|
|
|
1414 |
with tab5:
|
1415 |
-
|
1416 |
-
|
1417 |
-
|
1418 |
-
|
1419 |
-
|
1420 |
-
|
1421 |
-
|
|
|
1422 |
with tab6:
|
1423 |
-
|
1424 |
-
|
1425 |
-
|
1426 |
-
|
1427 |
-
|
1428 |
-
|
1429 |
-
|
|
|
1430 |
with tab7:
|
1431 |
-
|
1432 |
-
|
1433 |
-
|
1434 |
-
|
1435 |
-
|
1436 |
-
|
1437 |
-
|
|
|
|
837 |
with tab2:
|
838 |
col1, col2 = st.columns([1, 7])
|
839 |
with col1:
|
840 |
+
if 'Sim_Winner_Display' not in st.session_state:
|
841 |
+
st.session_state.Sim_Winner_Display = pd.DataFrame(columns=['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST', 'User/Field', 'Salary', 'Projection', 'Own', 'Fantasy', 'GPP_Proj'])
|
842 |
+
if 'Sim_Winner_Frame' not in st.session_state:
|
843 |
+
st.session_state.Sim_Winner_Frame = pd.DataFrame(columns=['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST', 'User/Field', 'Salary', 'Projection', 'Own', 'Fantasy', 'GPP_Proj'])
|
844 |
+
if 'Sim_Winner_Export' not in st.session_state:
|
845 |
+
st.session_state.Sim_Winner_Export = pd.DataFrame(columns=['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST', 'User/Field', 'Salary', 'Projection', 'Own', 'Fantasy', 'GPP_Proj'])
|
846 |
+
if 'player_freq' not in st.session_state:
|
847 |
+
st.session_state.player_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
|
848 |
+
if 'qb_freq' not in st.session_state:
|
849 |
+
st.session_state.qb_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
|
850 |
+
if 'rb_freq' not in st.session_state:
|
851 |
+
st.session_state.rb_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
|
852 |
+
if 'wr_freq' not in st.session_state:
|
853 |
+
st.session_state.wr_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
|
854 |
+
if 'te_freq' not in st.session_state:
|
855 |
+
st.session_state.te_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
|
856 |
+
if 'flex_freq' not in st.session_state:
|
857 |
+
st.session_state.flex_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
|
858 |
+
if 'dst_freq' not in st.session_state:
|
859 |
+
st.session_state.dst_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
|
860 |
st.info(t_stamp)
|
861 |
if st.button("Load/Reset Data", key='reset1'):
|
862 |
st.cache_data.clear()
|
|
|
909 |
sharp_split = .75
|
910 |
Strength_var = .01
|
911 |
scaling_var = 15
|
912 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
913 |
with col2:
|
914 |
with st.container():
|
915 |
+
if 'Sim_Winner_Display' not in st.session_state:
|
916 |
+
st.session_state.Sim_Winner_Display = pd.DataFrame(columns=['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST', 'User/Field', 'Salary', 'Projection', 'Own', 'Fantasy', 'GPP_Proj'])
|
917 |
+
if 'Sim_Winner_Frame' not in st.session_state:
|
918 |
+
st.session_state.Sim_Winner_Frame = pd.DataFrame(columns=['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST', 'User/Field', 'Salary', 'Projection', 'Own', 'Fantasy', 'GPP_Proj'])
|
919 |
+
if 'Sim_Winner_Export' not in st.session_state:
|
920 |
+
st.session_state.Sim_Winner_Export = pd.DataFrame(columns=['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST', 'User/Field', 'Salary', 'Projection', 'Own', 'Fantasy', 'GPP_Proj'])
|
921 |
+
if 'player_freq' not in st.session_state:
|
922 |
+
st.session_state.player_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
|
923 |
+
if 'qb_freq' not in st.session_state:
|
924 |
+
st.session_state.qb_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
|
925 |
+
if 'rb_freq' not in st.session_state:
|
926 |
+
st.session_state.rb_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
|
927 |
+
if 'wr_freq' not in st.session_state:
|
928 |
+
st.session_state.wr_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
|
929 |
+
if 'te_freq' not in st.session_state:
|
930 |
+
st.session_state.te_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
|
931 |
+
if 'flex_freq' not in st.session_state:
|
932 |
+
st.session_state.flex_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
|
933 |
+
if 'dst_freq' not in st.session_state:
|
934 |
+
st.session_state.dst_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
|
935 |
if st.button("Simulate Contest"):
|
936 |
try:
|
937 |
del dst_freq
|
|
|
1378 |
|
1379 |
with st.container():
|
1380 |
simulate_container = st.empty()
|
1381 |
+
if 'player_freq' in st.session_state:
|
1382 |
+
player_split_var2 = st.radio("Are you wanting to isolate any lineups with specific players?", ('Full Players', 'Specific Players'), key='player_split_var2')
|
1383 |
+
if player_split_var2 == 'Specific Players':
|
1384 |
+
find_var2 = st.multiselect('Which players must be included in the lineups?', options = st.session_state.player_freq['Player'].unique())
|
1385 |
+
elif player_split_var2 == 'Full Players':
|
1386 |
+
find_var2 = st.session_state.player_freq.Player.values.tolist()
|
1387 |
+
|
1388 |
+
if player_split_var2 == 'Specific Players':
|
1389 |
+
st.session_state.Sim_Winner_Display = st.session_state.Sim_Winner_Frame[np.equal.outer(st.session_state.Sim_Winner_Frame.to_numpy(copy=False), find_var2).any(axis=1).all(axis=1)]
|
1390 |
+
if player_split_var2 == 'Full Players':
|
1391 |
+
st.session_state.Sim_Winner_Display = st.session_state.Sim_Winner_Frame
|
1392 |
+
if 'Sim_Winner_Display' in st.session_state:
|
1393 |
+
st.dataframe(st.session_state.Sim_Winner_Display.style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').background_gradient(cmap='RdYlGn_r', subset=['Own']).format(precision=2), use_container_width = True)
|
1394 |
+
if 'Sim_Winner_Export' in st.session_state:
|
1395 |
+
st.download_button(
|
1396 |
+
label="Export Tables",
|
1397 |
+
data=convert_df_to_csv(st.session_state.Sim_Winner_Export),
|
1398 |
+
file_name='NFL_consim_export.csv',
|
1399 |
+
mime='text/csv',
|
1400 |
+
)
|
1401 |
|
1402 |
with st.container():
|
1403 |
freq_container = st.empty()
|
1404 |
tab1, tab2, tab3, tab4, tab5, tab6, tab7 = st.tabs(['Overall Exposures', 'QB Exposures', 'RB Exposures', 'WR Exposures', 'TE Exposures', 'FLEX Exposures', 'DST Exposures'])
|
1405 |
with tab1:
|
1406 |
+
if 'player_freq' in st.session_state:
|
1407 |
+
st.dataframe(st.session_state.player_freq.style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').format(freq_format, precision=2), use_container_width = True)
|
1408 |
+
st.download_button(
|
1409 |
+
label="Export Exposures",
|
1410 |
+
data=convert_df_to_csv(st.session_state.player_freq),
|
1411 |
+
file_name='player_freq_export.csv',
|
1412 |
+
mime='text/csv',
|
1413 |
+
)
|
1414 |
with tab2:
|
1415 |
+
if 'qb_freq' in st.session_state:
|
1416 |
+
st.dataframe(st.session_state.qb_freq.style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').format(freq_format, precision=2), use_container_width = True)
|
1417 |
+
st.download_button(
|
1418 |
+
label="Export Exposures",
|
1419 |
+
data=convert_df_to_csv(st.session_state.qb_freq),
|
1420 |
+
file_name='qb_freq_export.csv',
|
1421 |
+
mime='text/csv',
|
1422 |
+
)
|
1423 |
with tab3:
|
1424 |
+
if 'rb_freq' in st.session_state:
|
1425 |
+
st.dataframe(st.session_state.rb_freq.style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').format(freq_format, precision=2), use_container_width = True)
|
1426 |
+
st.download_button(
|
1427 |
+
label="Export Exposures",
|
1428 |
+
data=convert_df_to_csv(st.session_state.rb_freq),
|
1429 |
+
file_name='rb_freq_export.csv',
|
1430 |
+
mime='text/csv',
|
1431 |
+
)
|
1432 |
with tab4:
|
1433 |
+
if 'wr_freq' in st.session_state:
|
1434 |
+
st.dataframe(st.session_state.wr_freq.style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').format(freq_format, precision=2), use_container_width = True)
|
1435 |
+
st.download_button(
|
1436 |
+
label="Export Exposures",
|
1437 |
+
data=convert_df_to_csv(st.session_state.wr_freq),
|
1438 |
+
file_name='wr_freq_export.csv',
|
1439 |
+
mime='text/csv',
|
1440 |
+
)
|
1441 |
with tab5:
|
1442 |
+
if 'te_freq' in st.session_state:
|
1443 |
+
st.dataframe(st.session_state.te_freq.style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').format(freq_format, precision=2), use_container_width = True)
|
1444 |
+
st.download_button(
|
1445 |
+
label="Export Exposures",
|
1446 |
+
data=convert_df_to_csv(st.session_state.te_freq),
|
1447 |
+
file_name='te_freq_export.csv',
|
1448 |
+
mime='text/csv',
|
1449 |
+
)
|
1450 |
with tab6:
|
1451 |
+
if 'flex_freq' in st.session_state:
|
1452 |
+
st.dataframe(st.session_state.flex_freq.style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').format(freq_format, precision=2), use_container_width = True)
|
1453 |
+
st.download_button(
|
1454 |
+
label="Export Exposures",
|
1455 |
+
data=convert_df_to_csv(st.session_state.flex_freq),
|
1456 |
+
file_name='flex_freq_export.csv',
|
1457 |
+
mime='text/csv',
|
1458 |
+
)
|
1459 |
with tab7:
|
1460 |
+
if 'dst_freq' in st.session_state:
|
1461 |
+
st.dataframe(st.session_state.dst_freq.style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').format(freq_format, precision=2), use_container_width = True)
|
1462 |
+
st.download_button(
|
1463 |
+
label="Export Exposures",
|
1464 |
+
data=convert_df_to_csv(st.session_state.dst_freq),
|
1465 |
+
file_name='dst_freq_export.csv',
|
1466 |
+
mime='text/csv',
|
1467 |
+
)
|