Multichem commited on
Commit
b2da57a
·
1 Parent(s): ddd02fc

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +117 -87
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
- if 'Sim_Winner_Display' not in st.session_state:
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
- player_split_var2 = st.radio("Are you wanting to isolate any lineups with specific players?", ('Full Players', 'Specific Players'), key='player_split_var2')
1361
- if player_split_var2 == 'Specific Players':
1362
- find_var2 = st.multiselect('Which players must be included in the lineups?', options = st.session_state.player_freq['Player'].unique())
1363
- elif player_split_var2 == 'Full Players':
1364
- find_var2 = st.session_state.player_freq.Player.values.tolist()
1365
-
1366
- if player_split_var2 == 'Specific Players':
1367
- 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)]
1368
- if player_split_var2 == 'Full Players':
1369
- st.session_state.Sim_Winner_Display = st.session_state.Sim_Winner_Frame
1370
- 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)
1371
-
1372
- st.download_button(
1373
- label="Export Tables",
1374
- data=convert_df_to_csv(st.session_state.Sim_Winner_Export),
1375
- file_name='NFL_consim_export.csv',
1376
- mime='text/csv',
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
- 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)
1384
- st.download_button(
1385
- label="Export Exposures",
1386
- data=convert_df_to_csv(st.session_state.player_freq),
1387
- file_name='player_freq_export.csv',
1388
- mime='text/csv',
1389
- )
 
1390
  with tab2:
1391
- 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)
1392
- st.download_button(
1393
- label="Export Exposures",
1394
- data=convert_df_to_csv(st.session_state.qb_freq),
1395
- file_name='qb_freq_export.csv',
1396
- mime='text/csv',
1397
- )
 
1398
  with tab3:
1399
- 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)
1400
- st.download_button(
1401
- label="Export Exposures",
1402
- data=convert_df_to_csv(st.session_state.rb_freq),
1403
- file_name='rb_freq_export.csv',
1404
- mime='text/csv',
1405
- )
 
1406
  with tab4:
1407
- 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)
1408
- st.download_button(
1409
- label="Export Exposures",
1410
- data=convert_df_to_csv(st.session_state.wr_freq),
1411
- file_name='wr_freq_export.csv',
1412
- mime='text/csv',
1413
- )
 
1414
  with tab5:
1415
- 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)
1416
- st.download_button(
1417
- label="Export Exposures",
1418
- data=convert_df_to_csv(st.session_state.te_freq),
1419
- file_name='te_freq_export.csv',
1420
- mime='text/csv',
1421
- )
 
1422
  with tab6:
1423
- 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)
1424
- st.download_button(
1425
- label="Export Exposures",
1426
- data=convert_df_to_csv(st.session_state.flex_freq),
1427
- file_name='flex_freq_export.csv',
1428
- mime='text/csv',
1429
- )
 
1430
  with tab7:
1431
- 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)
1432
- st.download_button(
1433
- label="Export Exposures",
1434
- data=convert_df_to_csv(st.session_state.dst_freq),
1435
- file_name='dst_freq_export.csv',
1436
- mime='text/csv',
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
+ )