Multichem commited on
Commit
12c5542
·
verified ·
1 Parent(s): 70a1dd5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +130 -70
app.py CHANGED
@@ -77,73 +77,133 @@ def init_baselines():
77
 
78
  DK_seed, FD_seed, dk_raw, fd_raw = init_baselines()
79
 
80
-
81
- col1, col2 = st.columns([1, 7])
82
- with col1:
83
- if st.button("Load/Reset Data", key='reset1'):
84
- st.cache_data.clear()
85
- for key in st.session_state.keys():
86
- del st.session_state[key]
87
- DK_seed, FD_seed, dk_raw, fd_raw = init_baselines()
88
-
89
- slate_var1 = st.radio("Which data are you loading?", ('Main Slate', 'Other Main Slate'))
90
- site_var1 = st.radio("What site are you working with?", ('Draftkings', 'Fanduel'))
91
- if site_var1 == 'Draftkings':
92
- raw_baselines = dk_raw
93
- elif site_var1 == 'Fanduel':
94
- raw_baselines = fd_raw
95
-
96
- contest_var1 = st.selectbox("What contest size are you simulating?", ('Small', 'Medium', 'Large'))
97
- if contest_var1 == 'Small':
98
- Contest_Size = 1000
99
- elif contest_var1 == 'Medium':
100
- Contest_Size = 5000
101
- elif contest_var1 == 'Large':
102
- Contest_Size = 10000
103
- elif contest_var1 == 'Massive':
104
- Contest_Size = 100000
105
- strength_var1 = st.selectbox("How sharp is the field in the contest?", ('Not Very', 'Average', 'Very'))
106
- if strength_var1 == 'Not Very':
107
- sharp_split = [400000,100000]
108
- elif strength_var1 == 'Average':
109
- sharp_split = [500000,200000]
110
- elif strength_var1 == 'Very':
111
- sharp_split = [500000,300000]
112
-
113
- with col2:
114
- if site_var1 == 'Draftkings':
115
- st.session_state.Sim_Winner_Frame = DK_seed.head(Contest_Size)
116
- st.session_state.Sim_Winner_Display = DK_seed.head(Contest_Size)
117
- st.session_state.Sim_Winner_Export = DK_seed
118
- st.session_state.player_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,0:9].values, return_counts=True)),
119
- columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
120
- st.session_state.player_freq['Freq'] = st.session_state.player_freq['Freq'].astype(int)
121
- st.session_state.player_freq['Exposure'] = st.session_state.player_freq['Freq']/(Contest_Size)
122
-
123
- if 'Sim_Winner_Export' in st.session_state:
124
- st.download_button(
125
- label="Export 500k optimals",
126
- data=st.session_state.Sim_Winner_Export.to_csv().encode('utf-8'),
127
- file_name='MLB_consim_export.csv',
128
- mime='text/csv',
129
- )
130
- st.dataframe(st.session_state.Sim_Winner_Display.style.format(precision=2), height=500, use_container_width=True)
131
- st.dataframe(st.session_state.player_freq.style.format(percentages_format, precision=2), height=500, use_container_width=True)
132
- elif site_var1 == 'Fanduel':
133
- st.session_state.Sim_Winner_Frame = FD_seed.head(Contest_Size)
134
- st.session_state.Sim_Winner_Display = FD_seed.head(Contest_Size)
135
- st.session_state.Sim_Winner_Export = FD_seed
136
- st.session_state.player_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,0:8].values, return_counts=True)),
137
- columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
138
- st.session_state.player_freq['Freq'] = st.session_state.player_freq['Freq'].astype(int)
139
- st.session_state.player_freq['Exposure'] = st.session_state.player_freq['Freq']/(Contest_Size)
140
-
141
- if 'Sim_Winner_Export' in st.session_state:
142
- st.download_button(
143
- label="Export 500k optimals",
144
- data=st.session_state.Sim_Winner_Export.to_csv().encode('utf-8'),
145
- file_name='MLB_consim_export.csv',
146
- mime='text/csv',
147
- )
148
- st.dataframe(st.session_state.Sim_Winner_Display.style.format(precision=2), height=500, use_container_width=True)
149
- st.dataframe(st.session_state.player_freq.style.format(percentages_format, precision=2), height=500, use_container_width=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
 
78
  DK_seed, FD_seed, dk_raw, fd_raw = init_baselines()
79
 
80
+ tab1, tab2 = ['Data Export', 'Contest Sims']
81
+ with tab1:
82
+ col1, col2 = st.columns([1, 7])
83
+ with col1:
84
+ if st.button("Load/Reset Data", key='reset1'):
85
+ st.cache_data.clear()
86
+ for key in st.session_state.keys():
87
+ del st.session_state[key]
88
+ DK_seed, FD_seed, dk_raw, fd_raw = init_baselines()
89
+
90
+ slate_var1 = st.radio("Which data are you loading?", ('Main Slate', 'Other Main Slate'))
91
+ site_var1 = st.radio("What site are you working with?", ('Draftkings', 'Fanduel'))
92
+ if site_var1 == 'Draftkings':
93
+ raw_baselines = dk_raw
94
+ elif site_var1 == 'Fanduel':
95
+ raw_baselines = fd_raw
96
+ team_var1 = st.radio("Do you want a frame with specific teams?", ('Full Slate', 'Specific Teams'), key='team_var1')
97
+ if team_var1 == 'Specific Teams':
98
+ team_var2 = st.multiselect('Which teams do you want?', options = DK_seed['Team'].unique())
99
+ elif team_var1 == 'Full Players':
100
+ team_var2 = DK_seed.Team.values.tolist()
101
+
102
+ with col2:
103
+ if site_var1 == 'Draftkings':
104
+ DK_seed_parse = DK_seed[DK_seed['Team'].isin[team_var2]]
105
+ st.session_state.data_export_display = DK_seed_parse.head(1000)
106
+ st.session_state.data_export = DK_seed_parse
107
+ st.session_state.data_export_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.data_export.iloc[:,0:9].values, return_counts=True)),
108
+ columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
109
+ st.session_state.data_export_freq['Freq'] = st.session_state.data_export_freq['Freq'].astype(int)
110
+ st.session_state.data_export_freq['Exposure'] = st.session_state.data_export_freq['Freq']/(500000)
111
+
112
+ if 'data_export' in st.session_state:
113
+ st.download_button(
114
+ label="Export optimals set",
115
+ data=st.session_state.data_export.to_csv().encode('utf-8'),
116
+ file_name='MLB_optimals_export.csv',
117
+ mime='text/csv',
118
+ )
119
+ st.dataframe(st.session_state.data_export_display.style.format(precision=2), height=500, use_container_width=True)
120
+ st.dataframe(st.session_state.data_export_freq.style.format(percentages_format, precision=2), height=500, use_container_width=True)
121
+ elif site_var1 == 'Fanduel':
122
+ FD_seed_parse = FD_seed[FD_seed['Team'].isin[team_var2]]
123
+ st.session_state.data_export_display = FD_seed_parse.head(1000)
124
+ st.session_state.data_export = FD_seed_parse
125
+ st.session_state.data_export_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.data_export.iloc[:,0:8].values, return_counts=True)),
126
+ columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
127
+ st.session_state.data_export_freq['Freq'] = st.session_state.data_export_freq['Freq'].astype(int)
128
+ st.session_state.data_export_freq['Exposure'] = st.session_state.data_export_freq['Freq']/(500000)
129
+
130
+ if 'data_export' in st.session_state:
131
+ st.download_button(
132
+ label="Export optimals set",
133
+ data=st.session_state.Sim_Winner_Export.to_csv().encode('utf-8'),
134
+ file_name='MLB_optimals_export.csv',
135
+ mime='text/csv',
136
+ )
137
+ st.dataframe(st.session_state.data_export_display.style.format(precision=2), height=500, use_container_width=True)
138
+ st.dataframe(st.session_state.data_export_freq.style.format(percentages_format, precision=2), height=500, use_container_width=True)
139
+
140
+ with tab2:
141
+ col1, col2 = st.columns([1, 7])
142
+ with col1:
143
+ if st.button("Load/Reset Data", key='reset2'):
144
+ st.cache_data.clear()
145
+ for key in st.session_state.keys():
146
+ del st.session_state[key]
147
+ DK_seed, FD_seed, dk_raw, fd_raw = init_baselines()
148
+
149
+ # slate_var1 = st.radio("Which data are you loading?", ('Main Slate', 'Other Main Slate'))
150
+ # site_var1 = st.radio("What site are you working with?", ('Draftkings', 'Fanduel'))
151
+ # if site_var1 == 'Draftkings':
152
+ # raw_baselines = dk_raw
153
+ # elif site_var1 == 'Fanduel':
154
+ # raw_baselines = fd_raw
155
+
156
+ # contest_var1 = st.selectbox("What contest size are you simulating?", ('Small', 'Medium', 'Large'))
157
+ # if contest_var1 == 'Small':
158
+ # Contest_Size = 1000
159
+ # elif contest_var1 == 'Medium':
160
+ # Contest_Size = 5000
161
+ # elif contest_var1 == 'Large':
162
+ # Contest_Size = 10000
163
+ # elif contest_var1 == 'Massive':
164
+ # Contest_Size = 100000
165
+ # strength_var1 = st.selectbox("How sharp is the field in the contest?", ('Not Very', 'Average', 'Very'))
166
+ # if strength_var1 == 'Not Very':
167
+ # sharp_split = [400000,100000]
168
+ # elif strength_var1 == 'Average':
169
+ # sharp_split = [500000,200000]
170
+ # elif strength_var1 == 'Very':
171
+ # sharp_split = [500000,300000]
172
+
173
+ with col2:
174
+ # if site_var1 == 'Draftkings':
175
+ # st.session_state.Sim_Winner_Frame = DK_seed.head(Contest_Size)
176
+ # st.session_state.Sim_Winner_Display = DK_seed.head(Contest_Size)
177
+ # st.session_state.Sim_Winner_Export = DK_seed
178
+ # st.session_state.player_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,0:9].values, return_counts=True)),
179
+ # columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
180
+ # st.session_state.player_freq['Freq'] = st.session_state.player_freq['Freq'].astype(int)
181
+ # st.session_state.player_freq['Exposure'] = st.session_state.player_freq['Freq']/(Contest_Size)
182
+
183
+ # if 'Sim_Winner_Export' in st.session_state:
184
+ # st.download_button(
185
+ # label="Export 500k optimals",
186
+ # data=st.session_state.Sim_Winner_Export.to_csv().encode('utf-8'),
187
+ # file_name='MLB_consim_export.csv',
188
+ # mime='text/csv',
189
+ # )
190
+ # st.dataframe(st.session_state.Sim_Winner_Display.style.format(precision=2), height=500, use_container_width=True)
191
+ # st.dataframe(st.session_state.player_freq.style.format(percentages_format, precision=2), height=500, use_container_width=True)
192
+ # elif site_var1 == 'Fanduel':
193
+ # st.session_state.Sim_Winner_Frame = FD_seed.head(Contest_Size)
194
+ # st.session_state.Sim_Winner_Display = FD_seed.head(Contest_Size)
195
+ # st.session_state.Sim_Winner_Export = FD_seed
196
+ # st.session_state.player_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,0:8].values, return_counts=True)),
197
+ # columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
198
+ # st.session_state.player_freq['Freq'] = st.session_state.player_freq['Freq'].astype(int)
199
+ # st.session_state.player_freq['Exposure'] = st.session_state.player_freq['Freq']/(Contest_Size)
200
+
201
+ # if 'Sim_Winner_Export' in st.session_state:
202
+ # st.download_button(
203
+ # label="Export 500k optimals",
204
+ # data=st.session_state.Sim_Winner_Export.to_csv().encode('utf-8'),
205
+ # file_name='MLB_consim_export.csv',
206
+ # mime='text/csv',
207
+ # )
208
+ # st.dataframe(st.session_state.Sim_Winner_Display.style.format(precision=2), height=500, use_container_width=True)
209
+ # st.dataframe(st.session_state.player_freq.style.format(percentages_format, precision=2), height=500, use_container_width=True)