James McCool commited on
Commit
6fbd2f9
·
1 Parent(s): b7f0617

Add Portfolio Manager export functionality and improve data export options; streamline data preparation and filtering for optimal lineups in NBA and WNBA.

Browse files
Files changed (1) hide show
  1. app.py +227 -58
app.py CHANGED
@@ -308,6 +308,11 @@ def convert_df(array):
308
  array = pd.DataFrame(array, columns=column_names)
309
  return array.to_csv().encode('utf-8')
310
 
 
 
 
 
 
311
  dk_raw, fd_raw, dk_raw_sec, fd_raw_sec, roo_raw, sd_raw, dk_sd_raw, fd_sd_raw, timestamp = load_overall_stats('NBA')
312
  salary_dict = dict(zip(roo_raw.Player, roo_raw.Salary))
313
  id_dict = dict(zip(roo_raw.Player, roo_raw.player_ID))
@@ -360,8 +365,6 @@ with view_col:
360
  view_var2 = st.radio("View Type", ('Simple', 'Advanced'), key='view_var2')
361
  with site_col:
362
  site_var2 = st.radio("Site", ('Draftkings', 'Fanduel'), key='site_var2')
363
- if 'working_seed' in st.session_state:
364
- del st.session_state['working_seed']
365
  with league_col:
366
  league_var = st.radio("What League to load:", ('WNBA', 'NBA'), key='league_var')
367
  dk_raw, fd_raw, dk_raw_sec, fd_raw_sec, roo_raw, sd_raw, dk_sd_raw, fd_sd_raw, timestamp = load_overall_stats(league_var)
@@ -431,30 +434,38 @@ with tab1:
431
  'Own', 'Small_Own', 'Large_Own', 'Cash_Own', 'CPT_Own', 'LevX', 'ValX']]
432
  elif view_var2 == 'Simple':
433
  display_proj = display_proj[['Player', 'Position', 'Salary', 'Median', 'GPP%', 'Own']]
434
- export_data = display_proj.copy()
 
 
435
 
436
  # display_proj = display_proj.set_index('Player')
437
  st.session_state.display_proj = display_proj.set_index('Player', drop=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
438
 
439
- with display_container_1:
440
- display_container = st.empty()
441
- if 'display_proj' in st.session_state:
442
- if pos_var2 == 'All':
443
- st.session_state.display_proj = st.session_state.display_proj
444
- elif pos_var2 != 'All':
445
- st.session_state.display_proj = st.session_state.display_proj[st.session_state.display_proj['Position'].str.contains(pos_var2)]
446
- st.dataframe(st.session_state.display_proj.style.set_properties(**{'font-size': '6pt'}).background_gradient(axis=0).background_gradient(cmap='RdYlGn').format(roo_format, precision=2),
447
- height=1000, use_container_width = True)
448
 
449
- with display_dl_container_1:
450
- display_dl_container = st.empty()
451
- if 'display_proj' in st.session_state:
452
- st.download_button(
453
- label="Export Tables",
454
- data=convert_df_to_csv(export_data),
455
- file_name='NBA_ROO_export.csv',
456
- mime='text/csv',
457
- )
458
 
459
  with tab2:
460
  with st.expander("Info and Filters"):
@@ -479,7 +490,7 @@ with tab2:
479
  for key in st.session_state.keys():
480
  del st.session_state[key]
481
 
482
- col1, col2, col3, col4, col5, col6 = st.columns(6)
483
  with col1:
484
  slate_var1 = st.radio("Which data are you loading?", ('Main Slate', 'Secondary'))
485
  with col2:
@@ -522,43 +533,201 @@ with tab2:
522
  player_var2 = st.multiselect('Which players do you want?', options = fd_raw['Player'].unique())
523
  elif player_var1 == 'Full Slate':
524
  player_var2 = fd_raw.Player.values.tolist()
525
- if st.button("Prepare data export", key='data_export'):
526
-
527
  if site_var2 == 'Draftkings':
528
- if slate_type_var1 == 'Regular':
529
- data_export = init_DK_lineups(slate_var1, league_var)
530
- data_export_names = data_export.copy()
531
- for col_idx in range(8):
532
- data_export[:, col_idx] = np.array([id_dict.get(player, player) for player in data_export[:, col_idx]])
533
- elif slate_type_var1 == 'Showdown':
534
- data_export = init_DK_SD_lineups(slate_var1, league_var)
535
- data_export_names = data_export.copy()
536
- for col_idx in range(6):
537
- data_export[:, col_idx] = np.array([dk_id_dict_sd.get(player, player) for player in data_export[:, col_idx]])
538
-
539
  elif site_var2 == 'Fanduel':
540
- if slate_type_var1 == 'Regular':
541
- data_export = init_FD_lineups(slate_var1, league_var)
542
- data_export_names = data_export.copy()
543
- for col_idx in range(9):
544
- data_export[:, col_idx] = np.array([id_dict.get(player, player) for player in data_export[:, col_idx]])
545
- elif slate_type_var1 == 'Showdown':
546
- data_export = init_FD_SD_lineups(slate_var1, league_var)
547
- data_export_names = data_export.copy()
548
- for col_idx in range(6):
549
- data_export[:, col_idx] = np.array([fd_id_dict_sd.get(player, player) for player in data_export[:, col_idx]])
550
- st.download_button(
551
- label="Export optimals (Names)",
552
- data=convert_df(data_export_names),
553
- file_name='NBA_optimals_export.csv',
554
- mime='text/csv',
555
- )
556
- st.download_button(
557
- label="Export optimals (IDs)",
558
- data=convert_df(data_export),
559
- file_name='NBA_optimals_export.csv',
560
- mime='text/csv',
561
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
562
 
563
 
564
  if site_var2 == 'Draftkings':
@@ -608,7 +777,7 @@ with tab2:
608
  elif slate_type_var1 == 'Showdown':
609
  st.session_state.working_seed = init_FD_SD_lineups(slate_var1, league_var)
610
  st.session_state.data_export_display = pd.DataFrame(st.session_state.working_seed[0:lineup_num_var], columns=column_names)
611
-
612
  export_file = st.session_state.data_export_display.copy()
613
  if site_var2 == 'Draftkings':
614
  if slate_type_var1 == 'Regular':
 
308
  array = pd.DataFrame(array, columns=column_names)
309
  return array.to_csv().encode('utf-8')
310
 
311
+ @st.cache_data
312
+ def convert_pm_df(array):
313
+ array = pd.DataFrame(array)
314
+ return array.to_csv().encode('utf-8')
315
+
316
  dk_raw, fd_raw, dk_raw_sec, fd_raw_sec, roo_raw, sd_raw, dk_sd_raw, fd_sd_raw, timestamp = load_overall_stats('NBA')
317
  salary_dict = dict(zip(roo_raw.Player, roo_raw.Salary))
318
  id_dict = dict(zip(roo_raw.Player, roo_raw.player_ID))
 
365
  view_var2 = st.radio("View Type", ('Simple', 'Advanced'), key='view_var2')
366
  with site_col:
367
  site_var2 = st.radio("Site", ('Draftkings', 'Fanduel'), key='site_var2')
 
 
368
  with league_col:
369
  league_var = st.radio("What League to load:", ('WNBA', 'NBA'), key='league_var')
370
  dk_raw, fd_raw, dk_raw_sec, fd_raw_sec, roo_raw, sd_raw, dk_sd_raw, fd_sd_raw, timestamp = load_overall_stats(league_var)
 
434
  'Own', 'Small_Own', 'Large_Own', 'Cash_Own', 'CPT_Own', 'LevX', 'ValX']]
435
  elif view_var2 == 'Simple':
436
  display_proj = display_proj[['Player', 'Position', 'Salary', 'Median', 'GPP%', 'Own']]
437
+ export_data = raw_baselines.copy()
438
+ export_data_pm = raw_baselines[['Player', 'Position', 'Team', 'Salary', 'Median', 'Own', 'CPT_Own']]
439
+ export_data_pm = export_data_pm.rename(columns={'Own': 'ownership', 'Median': 'median', 'Player': 'player_names', 'Position': 'position', 'Team': 'team', 'Salary': 'salary', 'CPT_Own': 'captain ownership'})
440
 
441
  # display_proj = display_proj.set_index('Player')
442
  st.session_state.display_proj = display_proj.set_index('Player', drop=True)
443
+
444
+ reg_dl_col, pm_dl_col, blank_col = st.columns([2, 2, 6])
445
+ with reg_dl_col:
446
+ st.download_button(
447
+ label="Export ROO (Regular)",
448
+ data=convert_df_to_csv(export_data),
449
+ file_name='NBA_ROO_export.csv',
450
+ mime='text/csv',
451
+ )
452
+ with pm_dl_col:
453
+ st.download_button(
454
+ label="Export ROO (Portfolio Manager)",
455
+ data=convert_df_to_csv(export_data_pm),
456
+ file_name='NBA_ROO_export.csv',
457
+ mime='text/csv',
458
+ )
459
 
460
+ if 'display_proj' in st.session_state:
461
+ if pos_var2 == 'All':
462
+ st.session_state.display_proj = st.session_state.display_proj
463
+ elif pos_var2 != 'All':
464
+ st.session_state.display_proj = st.session_state.display_proj[st.session_state.display_proj['Position'].str.contains(pos_var2)]
465
+ st.dataframe(st.session_state.display_proj.style.set_properties(**{'font-size': '6pt'}).background_gradient(axis=0).background_gradient(cmap='RdYlGn').format(roo_format, precision=2),
466
+ height=1000, use_container_width = True)
467
+
 
468
 
 
 
 
 
 
 
 
 
 
469
 
470
  with tab2:
471
  with st.expander("Info and Filters"):
 
490
  for key in st.session_state.keys():
491
  del st.session_state[key]
492
 
493
+ col1, col2, col3, col4, col5 = st.columns(5)
494
  with col1:
495
  slate_var1 = st.radio("Which data are you loading?", ('Main Slate', 'Secondary'))
496
  with col2:
 
533
  player_var2 = st.multiselect('Which players do you want?', options = fd_raw['Player'].unique())
534
  elif player_var1 == 'Full Slate':
535
  player_var2 = fd_raw.Player.values.tolist()
536
+ with col5:
 
537
  if site_var2 == 'Draftkings':
538
+ salary_min_var = st.number_input("Minimum salary used", min_value = 0, max_value = 50000, value = 49000, step = 100, key = 'salary_min_var')
539
+ salary_max_var = st.number_input("Maximum salary used", min_value = 0, max_value = 50000, value = 50000, step = 100, key = 'salary_max_var')
 
 
 
 
 
 
 
 
 
540
  elif site_var2 == 'Fanduel':
541
+ salary_min_var = st.number_input("Minimum salary used", min_value = 0, max_value = 40000, value = 39000, step = 100, key = 'salary_min_var')
542
+ salary_max_var = st.number_input("Maximum salary used", min_value = 0, max_value = 40000, value = 40000, step = 100, key = 'salary_max_var')
543
+
544
+ reg_dl_col, filtered_dl_col, blank_dl_col = st.columns([2, 2, 6])
545
+ with reg_dl_col:
546
+ if st.button("Prepare full data export", key='data_export'):
547
+ name_export = pd.DataFrame(st.session_state.working_seed.copy(), columns=column_names)
548
+ data_export = pd.DataFrame(st.session_state.working_seed.copy(), columns=column_names)
549
+ if site_var2 == 'Draftkings':
550
+ if slate_type_var1 == 'Regular':
551
+ if league_var == 'NBA':
552
+ map_columns = ['PG', 'SG', 'SF', 'PF', 'C', 'G', 'F', 'FLEX']
553
+ elif league_var == 'WNBA':
554
+ map_columns = ['G1', 'G2', 'F1', 'F2', 'F3', 'UTIL']
555
+ elif slate_type_var1 == 'Showdown':
556
+ map_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']
557
+ for col_idx in map_columns:
558
+ if slate_type_var1 == 'Regular':
559
+ data_export[col_idx] = data_export[col_idx].map(id_dict)
560
+ elif slate_type_var1 == 'Showdown':
561
+ data_export[col_idx] = data_export[col_idx].map(dk_id_dict_sd)
562
+ elif site_var2 == 'Fanduel':
563
+ if slate_type_var1 == 'Regular':
564
+ if league_var == 'NBA':
565
+ map_columns = ['PG1', 'PG2', 'SG1', 'SG2', 'SF1', 'SF2', 'PF1', 'PF2', 'C1', 'C2', 'UTIL']
566
+ elif league_var == 'WNBA':
567
+ map_columns = ['G1', 'G2', 'G3', 'F1', 'F2', 'F3', 'F4']
568
+ elif slate_type_var1 == 'Showdown':
569
+ map_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4']
570
+ for col_idx in map_columns:
571
+ if slate_type_var1 == 'Regular':
572
+ data_export[col_idx] = data_export[col_idx].map(id_dict)
573
+ elif slate_type_var1 == 'Showdown':
574
+ data_export[col_idx] = data_export[col_idx].map(fd_id_dict_sd)
575
+ reg_opt_col, pm_opt_col = st.columns(2)
576
+ with reg_opt_col:
577
+ st.download_button(
578
+ label="Export optimals set (IDs)",
579
+ data=convert_df(data_export),
580
+ file_name='NBA_optimals_export.csv',
581
+ mime='text/csv',
582
+ )
583
+ st.download_button(
584
+ label="Export optimals set (Names)",
585
+ data=convert_df(name_export),
586
+ file_name='NBA_optimals_export.csv',
587
+ mime='text/csv',
588
+ )
589
+ with pm_opt_col:
590
+ if site_var2 == 'Draftkings':
591
+ if slate_type_var1 == 'Regular':
592
+ if league_var == 'NBA':
593
+ data_export = data_export.set_index('PG').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
594
+ elif league_var == 'WNBA':
595
+ data_export = data_export.set_index('G1').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
596
+ elif slate_type_var1 == 'Showdown':
597
+ data_export = data_export.set_index('CPT').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
598
+ elif site_var2 == 'Fanduel':
599
+ if slate_type_var1 == 'Regular':
600
+ if league_var == 'NBA':
601
+ data_export = data_export.set_index('PG1').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
602
+ elif league_var == 'WNBA':
603
+ data_export = data_export.set_index('G1').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
604
+ elif slate_type_var1 == 'Showdown':
605
+ data_export = data_export.set_index('CPT').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
606
+ st.download_button(
607
+ label="Portfolio Manager Export (IDs)",
608
+ data=convert_pm_df(data_export),
609
+ file_name='NBA_optimals_export.csv',
610
+ mime='text/csv',
611
+ )
612
+
613
+ if site_var2 == 'Draftkings':
614
+ if slate_type_var1 == 'Regular':
615
+ if league_var == 'NBA':
616
+ name_export = name_export.set_index('PG').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
617
+ elif league_var == 'WNBA':
618
+ name_export = name_export.set_index('G1').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
619
+ elif slate_type_var1 == 'Showdown':
620
+ name_export = name_export.set_index('CPT').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
621
+ elif site_var2 == 'Fanduel':
622
+ if slate_type_var1 == 'Regular':
623
+ if league_var == 'NBA':
624
+ name_export = name_export.set_index('PG1').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
625
+ elif league_var == 'WNBA':
626
+ name_export = name_export.set_index('G1').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
627
+ elif slate_type_var1 == 'Showdown':
628
+ name_export = name_export.set_index('CPT').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
629
+ st.download_button(
630
+ label="Portfolio Manager Export (Names)",
631
+ data=convert_pm_df(name_export),
632
+ file_name='NBA_optimals_export.csv',
633
+ mime='text/csv',
634
+ )
635
+ with filtered_dl_col:
636
+ if st.button("Prepare full data export (Filtered)", key='data_export_filtered'):
637
+ name_export = pd.DataFrame(st.session_state.working_seed.copy(), columns=column_names)
638
+ data_export = pd.DataFrame(st.session_state.working_seed.copy(), columns=column_names)
639
+ if site_var2 == 'Draftkings':
640
+ if slate_type_var1 == 'Regular':
641
+ if league_var == 'NBA':
642
+ map_columns = ['PG', 'SG', 'SF', 'PF', 'C', 'G', 'F', 'FLEX']
643
+ elif league_var == 'WNBA':
644
+ map_columns = ['G1', 'G2', 'F1', 'F2', 'F3', 'UTIL']
645
+ elif slate_type_var1 == 'Showdown':
646
+ map_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']
647
+ for col_idx in map_columns:
648
+ if slate_type_var1 == 'Regular':
649
+ data_export[col_idx] = data_export[col_idx].map(id_dict)
650
+ elif slate_type_var1 == 'Showdown':
651
+ data_export[col_idx] = data_export[col_idx].map(dk_id_dict_sd)
652
+ elif site_var2 == 'Fanduel':
653
+ if slate_type_var1 == 'Regular':
654
+ if league_var == 'NBA':
655
+ map_columns = ['PG1', 'PG2', 'SG1', 'SG2', 'SF1', 'SF2', 'PF1', 'PF2', 'C1', 'C2', 'UTIL']
656
+ elif league_var == 'WNBA':
657
+ map_columns = ['G1', 'G2', 'G3', 'F1', 'F2', 'F3', 'F4']
658
+ elif slate_type_var1 == 'Showdown':
659
+ map_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4']
660
+ for col_idx in map_columns:
661
+ if slate_type_var1 == 'Regular':
662
+ data_export[col_idx] = data_export[col_idx].map(id_dict)
663
+ elif slate_type_var1 == 'Showdown':
664
+ data_export[col_idx] = data_export[col_idx].map(fd_id_dict_sd)
665
+ data_export = data_export[data_export['salary'] >= salary_min_var]
666
+ data_export = data_export[data_export['salary'] <= salary_max_var]
667
+
668
+ name_export = name_export[name_export['salary'] >= salary_min_var]
669
+ name_export = name_export[name_export['salary'] <= salary_max_var]
670
+
671
+ reg_opt_col, pm_opt_col = st.columns(2)
672
+ with reg_opt_col:
673
+ st.download_button(
674
+ label="Export optimals set (IDs)",
675
+ data=convert_df(data_export),
676
+ file_name='NBA_optimals_export.csv',
677
+ mime='text/csv',
678
+ )
679
+ st.download_button(
680
+ label="Export optimals set (Names)",
681
+ data=convert_df(name_export),
682
+ file_name='NBA_optimals_export.csv',
683
+ mime='text/csv',
684
+ )
685
+ with pm_opt_col:
686
+ if site_var2 == 'Draftkings':
687
+ if slate_type_var1 == 'Regular':
688
+ if league_var == 'NBA':
689
+ data_export = data_export.set_index('PG').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
690
+ elif league_var == 'WNBA':
691
+ data_export = data_export.set_index('G1').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
692
+ elif slate_type_var1 == 'Showdown':
693
+ data_export = data_export.set_index('CPT').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
694
+ elif site_var2 == 'Fanduel':
695
+ if slate_type_var1 == 'Regular':
696
+ if league_var == 'NBA':
697
+ data_export = data_export.set_index('PG1').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
698
+ elif league_var == 'WNBA':
699
+ data_export = data_export.set_index('G1').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
700
+ elif slate_type_var1 == 'Showdown':
701
+ data_export = data_export.set_index('CPT').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
702
+ st.download_button(
703
+ label="Portfolio Manager Export (IDs)",
704
+ data=convert_pm_df(data_export),
705
+ file_name='NBA_optimals_export.csv',
706
+ mime='text/csv',
707
+ )
708
+
709
+ if site_var2 == 'Draftkings':
710
+ if slate_type_var1 == 'Regular':
711
+ if league_var == 'NBA':
712
+ name_export = name_export.set_index('PG').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
713
+ elif league_var == 'WNBA':
714
+ name_export = name_export.set_index('G1').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
715
+ elif slate_type_var1 == 'Showdown':
716
+ name_export = name_export.set_index('CPT').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
717
+ elif site_var2 == 'Fanduel':
718
+ if slate_type_var1 == 'Regular':
719
+ if league_var == 'NBA':
720
+ name_export = name_export.set_index('PG1').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
721
+ elif league_var == 'WNBA':
722
+ name_export = name_export.set_index('G1').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
723
+ elif slate_type_var1 == 'Showdown':
724
+ name_export = name_export.set_index('CPT').drop(columns=['salary', 'proj', 'Team', 'Team_count', 'Secondary', 'Secondary_count', 'Own'], axis=1)
725
+ st.download_button(
726
+ label="Portfolio Manager Export (Names)",
727
+ data=convert_pm_df(name_export),
728
+ file_name='NBA_optimals_export.csv',
729
+ mime='text/csv',
730
+ )
731
 
732
 
733
  if site_var2 == 'Draftkings':
 
777
  elif slate_type_var1 == 'Showdown':
778
  st.session_state.working_seed = init_FD_SD_lineups(slate_var1, league_var)
779
  st.session_state.data_export_display = pd.DataFrame(st.session_state.working_seed[0:lineup_num_var], columns=column_names)
780
+ st.session_state.data_export_display = st.session_state.data_export_display[st.session_state.data_export_display['salary'].between(salary_min_var, salary_max_var)]
781
  export_file = st.session_state.data_export_display.copy()
782
  if site_var2 == 'Draftkings':
783
  if slate_type_var1 == 'Regular':