Spaces:
Sleeping
Sleeping
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 |
+
)
|