Multichem commited on
Commit
5345f4f
·
1 Parent(s): 3f0b1e4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +72 -0
app.py CHANGED
@@ -43,6 +43,8 @@ team_roo_format = {'Top Score%': '{:.2%}','0 Runs': '{:.2%}', '1 Run': '{:.2%}',
43
  player_roo_format = {'Top_finish': '{:.2%}','Top_5_finish': '{:.2%}', 'Top_10_finish': '{:.2%}', '20+%': '{:.2%}', '2x%': '{:.2%}', '3x%': '{:.2%}',
44
  '4x%': '{:.2%}','GPP%': '{:.2%}'}
45
 
 
 
46
  all_dk_player_projections = 'https://docs.google.com/spreadsheets/d/1I_1Ve3F4tftgfLQQoRKOJ351XfEG48s36OxXUKxmgS8/edit#gid=1391856348'
47
 
48
  @st.cache_resource(ttl=600)
@@ -97,10 +99,28 @@ def load_fd_player_projections_2():
97
 
98
  return raw_display
99
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  dk_roo_raw = load_dk_player_projections()
101
  dk_roo_raw_2 = load_dk_player_projections_2()
102
  fd_roo_raw = load_fd_player_projections()
103
  fd_roo_raw_2 = load_fd_player_projections_2()
 
104
 
105
  @st.cache_data
106
  def convert_df_to_csv(df):
@@ -143,6 +163,7 @@ with tab2:
143
  dk_roo_raw_2 = load_dk_player_projections_2()
144
  fd_roo_raw = load_fd_player_projections()
145
  fd_roo_raw_2 = load_fd_player_projections_2()
 
146
  slate_var2 = st.radio("Which data are you loading?", ('Paydirt (Main)', 'Paydirt (Secondary)', 'User'), key='slate_var2')
147
  site_var2 = st.radio("What table would you like to display?", ('Draftkings', 'Fanduel'), key='site_var2')
148
  if slate_var2 == 'User':
@@ -589,6 +610,53 @@ with tab3:
589
  portfolio = portfolio.drop_duplicates()
590
 
591
  final_outcomes = portfolio
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
592
 
593
  with optimize_container:
594
  optimize_container = st.empty()
@@ -600,3 +668,7 @@ with tab3:
600
  file_name='MLB_optimals_export.csv',
601
  mime='text/csv',
602
  )
 
 
 
 
 
43
  player_roo_format = {'Top_finish': '{:.2%}','Top_5_finish': '{:.2%}', 'Top_10_finish': '{:.2%}', '20+%': '{:.2%}', '2x%': '{:.2%}', '3x%': '{:.2%}',
44
  '4x%': '{:.2%}','GPP%': '{:.2%}'}
45
 
46
+ expose_format = {'Proj Own': '{:.2%}','Exposure': '{:.2%}'}
47
+
48
  all_dk_player_projections = 'https://docs.google.com/spreadsheets/d/1I_1Ve3F4tftgfLQQoRKOJ351XfEG48s36OxXUKxmgS8/edit#gid=1391856348'
49
 
50
  @st.cache_resource(ttl=600)
 
99
 
100
  return raw_display
101
 
102
+ @st.cache_resource(ttl = 3600)
103
+ def set_export_ids():
104
+ sh = gc.open_by_url(all_dk_player_projections)
105
+ worksheet = sh.worksheet('SD_Projections')
106
+ load_display = pd.DataFrame(worksheet.get_all_records())
107
+ load_display.replace('', np.nan, inplace=True)
108
+ raw_display = load_display.dropna(subset=['Median'])
109
+ dk_ids = dict(zip(raw_display['Player'], raw_display['player_id']))
110
+
111
+ worksheet = sh.worksheet('FD_SD_Projections')
112
+ load_display = pd.DataFrame(worksheet.get_all_records())
113
+ load_display.replace('', np.nan, inplace=True)
114
+ raw_display = load_display.dropna(subset=['Median'])
115
+ fd_ids = dict(zip(raw_display['Player'], raw_display['player_id']))
116
+
117
+ return dk_ids, fd_ids
118
+
119
  dk_roo_raw = load_dk_player_projections()
120
  dk_roo_raw_2 = load_dk_player_projections_2()
121
  fd_roo_raw = load_fd_player_projections()
122
  fd_roo_raw_2 = load_fd_player_projections_2()
123
+ dkid_dict, fdid_dict = set_export_ids()
124
 
125
  @st.cache_data
126
  def convert_df_to_csv(df):
 
163
  dk_roo_raw_2 = load_dk_player_projections_2()
164
  fd_roo_raw = load_fd_player_projections()
165
  fd_roo_raw_2 = load_fd_player_projections_2()
166
+ dkid_dict, fdid_dict = set_export_ids()
167
  slate_var2 = st.radio("Which data are you loading?", ('Paydirt (Main)', 'Paydirt (Secondary)', 'User'), key='slate_var2')
168
  site_var2 = st.radio("What table would you like to display?", ('Draftkings', 'Fanduel'), key='site_var2')
169
  if slate_var2 == 'User':
 
610
  portfolio = portfolio.drop_duplicates()
611
 
612
  final_outcomes = portfolio
613
+
614
+ player_freq = pd.DataFrame(np.column_stack(np.unique(portfolio.iloc[:,0:8].values, return_counts=True)),
615
+ columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
616
+ player_freq['Freq'] = player_freq['Freq'].astype(int)
617
+ player_freq['Position'] = player_freq['Player'].map(player_pos)
618
+ player_freq['Salary'] = player_freq['Player'].map(player_sal)
619
+ player_freq['Proj Own'] = player_freq['Player'].map(player_own) / 100
620
+ player_freq['Exposure'] = player_freq['Freq']/(linenum_var1)
621
+ player_freq['Team'] = player_freq['Player'].map(player_team)
622
+
623
+ final_outcomes_export = pd.DataFrame()
624
+
625
+ if site_var1 == 'Draftkings':
626
+ final_outcomes_export['CPT'] = final_outcomes['CPT']
627
+ final_outcomes_export['FLEX1'] = final_outcomes['FLEX1']
628
+ final_outcomes_export['FLEX2'] = final_outcomes['FLEX2']
629
+ final_outcomes_export['FLEX3'] = final_outcomes['FLEX3']
630
+ final_outcomes_export['FLEX4'] = final_outcomes['FLEX4']
631
+ final_outcomes_export['FLEX5'] = final_outcomes['FLEX5']
632
+ final_outcomes_export['Salary'] = final_outcomes['Cost']
633
+ final_outcomes_export['Own'] = final_outcomes['Own']
634
+ final_outcomes_export['Proj'] = final_outcomes['Proj']
635
+
636
+ final_outcomes_export['CPT'].replace(dkid_dict, inplace=True)
637
+ final_outcomes_export['FLEX1'].replace(dkid_dict, inplace=True)
638
+ final_outcomes_export['FLEX2'].replace(dkid_dict, inplace=True)
639
+ final_outcomes_export['FLEX3'].replace(dkid_dict, inplace=True)
640
+ final_outcomes_export['FLEX4'].replace(dkid_dict, inplace=True)
641
+ final_outcomes_export['FLEX5'].replace(dkid_dict, inplace=True)
642
+ elif site_var1 == 'Fanduel':
643
+ final_outcomes_export['CPT'] = final_outcomes['CPT']
644
+ final_outcomes_export['FLEX1'] = final_outcomes['FLEX1']
645
+ final_outcomes_export['FLEX2'] = final_outcomes['FLEX2']
646
+ final_outcomes_export['FLEX3'] = final_outcomes['FLEX3']
647
+ final_outcomes_export['FLEX4'] = final_outcomes['FLEX4']
648
+ final_outcomes_export['Salary'] = final_outcomes['Cost']
649
+ final_outcomes_export['Own'] = final_outcomes['Own']
650
+ final_outcomes_export['Proj'] = final_outcomes['Proj']
651
+
652
+ final_outcomes_export['MVP'].replace(fdid_dict, inplace=True)
653
+ final_outcomes_export['FLEX1'].replace(fdid_dict, inplace=True)
654
+ final_outcomes_export['FLEX2'].replace(fdid_dict, inplace=True)
655
+ final_outcomes_export['FLEX3'].replace(fdid_dict, inplace=True)
656
+ final_outcomes_export['FLEX4'].replace(fdid_dict, inplace=True)
657
+
658
+ player_freq = player_freq[['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure']]
659
+ player_freq = player_freq.set_index('Player')
660
 
661
  with optimize_container:
662
  optimize_container = st.empty()
 
668
  file_name='MLB_optimals_export.csv',
669
  mime='text/csv',
670
  )
671
+
672
+ with st.container():
673
+ freq_container = st.empty()
674
+ st.dataframe(player_freq.style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').format(expose_format, precision=2), use_container_width = True)