Multichem commited on
Commit
9f450ab
·
1 Parent(s): c0f69b4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -99
app.py CHANGED
@@ -5,15 +5,11 @@ for name in dir():
5
  if not name.startswith('_'):
6
  del globals()[name]
7
 
8
- import pulp
9
  import numpy as np
10
  import pandas as pd
11
  import streamlit as st
12
  import gspread
13
- import time
14
  import random
15
- import scipy.stats
16
- import os
17
 
18
  @st.cache_resource
19
  def init_conn():
@@ -38,30 +34,8 @@ def init_conn():
38
 
39
  gc = init_conn()
40
 
41
- game_format = {'Win Percentage': '{:.2%}','First Inning Lead Percentage': '{:.2%}',
42
- 'Fifth Inning Lead Percentage': '{:.2%}', '8+ runs': '{:.2%}', 'DK LevX': '{:.2%}', 'FD LevX': '{:.2%}'}
43
-
44
- player_roo_format = {'Top_finish': '{:.2%}','Top_5_finish': '{:.2%}', 'Top_10_finish': '{:.2%}', '20+%': '{:.2%}', '2x%': '{:.2%}', '3x%': '{:.2%}',
45
- '4x%': '{:.2%}','GPP%': '{:.2%}'}
46
-
47
  freq_format = {'Proj Own': '{:.2%}', 'Exposure': '{:.2%}', 'Edge': '{:.2%}'}
48
 
49
- @st.cache_resource(ttl = 300)
50
- def set_slate_teams():
51
- sh = gc.open_by_url('https://docs.google.com/spreadsheets/d/1I_1Ve3F4tftgfLQQoRKOJ351XfEG48s36OxXUKxmgS8/edit#gid=1391856348')
52
- worksheet = sh.worksheet('Site_Info')
53
- raw_display = pd.DataFrame(worksheet.get_all_records())
54
-
55
- return raw_display
56
-
57
- @st.cache_resource(ttl = 300)
58
- def player_stat_table():
59
- sh = gc.open_by_url('https://docs.google.com/spreadsheets/d/1I_1Ve3F4tftgfLQQoRKOJ351XfEG48s36OxXUKxmgS8/edit#gid=1391856348')
60
- worksheet = sh.worksheet('Player_Projections')
61
- raw_display = pd.DataFrame(worksheet.get_all_records())
62
-
63
- return raw_display
64
-
65
  @st.cache_resource(ttl = 300)
66
  def load_dk_player_projections():
67
  sh = gc.open_by_url('https://docs.google.com/spreadsheets/d/1I_1Ve3F4tftgfLQQoRKOJ351XfEG48s36OxXUKxmgS8/edit#gid=1391856348')
@@ -251,6 +225,8 @@ def create_random_portfolio(Total_Sample_Size, raw_baselines):
251
  RandomPortfolio = pd.DataFrame(np.hstack(all_choices), columns=['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST'])
252
  RandomPortfolio['User/Field'] = 0
253
 
 
 
254
  del O_merge
255
 
256
  return RandomPortfolio, maps_dict, ranges_dict, full_pos_player_dict
@@ -263,28 +239,6 @@ def get_correlated_portfolio_for_sim(Total_Sample_Size):
263
  stack_num = random.randint(1, 3)
264
  stacking_dict = create_stack_options(raw_baselines, stack_num)
265
 
266
- # # Create a dictionary for mapping positions to their corresponding dictionaries
267
- # dict_map = {
268
- # 'QB': qb_dict,
269
- # 'RB1': full_pos_player_dict['pos_dicts'][0],
270
- # 'RB2': full_pos_player_dict['pos_dicts'][0],
271
- # 'WR1': full_pos_player_dict['pos_dicts'][1],
272
- # 'WR2': full_pos_player_dict['pos_dicts'][1],
273
- # 'WR3': full_pos_player_dict['pos_dicts'][1],
274
- # 'TE': full_pos_player_dict['pos_dicts'][2],
275
- # 'FLEX': full_pos_player_dict['pos_dicts'][3],
276
- # 'DST': def_dict
277
- # }
278
-
279
- # # Apply mapping for each position
280
- # for pos, mapping in dict_map.items():
281
- # RandomPortfolio[pos] = RandomPortfolio[pos].map(mapping).astype("string[pyarrow]")
282
-
283
- # # This part appears to be for filtering. Consider if it can be optimized depending on the data characteristics
284
- # RandomPortfolio['plyr_list'] = RandomPortfolio.values.tolist()
285
- # RandomPortfolio['plyr_count'] = RandomPortfolio['plyr_list'].apply(lambda x: len(set(x)))
286
- # RandomPortfolio = RandomPortfolio[RandomPortfolio['plyr_count'] == 10].drop(columns=['plyr_list','plyr_count']).reset_index(drop=True)
287
-
288
  RandomPortfolio['QB'] = pd.Series(list(RandomPortfolio['QB'].map(qb_dict)), dtype="string[pyarrow]")
289
  RandomPortfolio['RB1'] = pd.Series(list(RandomPortfolio['RB1'].map(full_pos_player_dict['pos_dicts'][0])), dtype="string[pyarrow]")
290
  RandomPortfolio['RB2'] = pd.Series(list(RandomPortfolio['RB2'].map(full_pos_player_dict['pos_dicts'][0])), dtype="string[pyarrow]")
@@ -305,8 +259,6 @@ def get_correlated_portfolio_for_sim(Total_Sample_Size):
305
  del stack_num
306
  del stacking_dict
307
 
308
-
309
-
310
  RandomPortfolio['QBs'] = RandomPortfolio['QB'].map(maps_dict['Salary_map']).astype(np.int32)
311
  RandomPortfolio['RB1s'] = RandomPortfolio['RB1'].map(maps_dict['Salary_map']).astype(np.int32)
312
  RandomPortfolio['RB2s'] = RandomPortfolio['RB2'].map(maps_dict['Salary_map']).astype(np.int32)
@@ -838,26 +790,6 @@ with tab1:
838
  with tab2:
839
  col1, col2 = st.columns([1, 7])
840
  with col1:
841
- if 'Sim_Winner_Display' not in st.session_state:
842
- 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'])
843
- if 'Sim_Winner_Frame' not in st.session_state:
844
- 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'])
845
- if 'Sim_Winner_Export' not in st.session_state:
846
- 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'])
847
- if 'player_freq' not in st.session_state:
848
- st.session_state.player_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
849
- if 'qb_freq' not in st.session_state:
850
- st.session_state.qb_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
851
- if 'rb_freq' not in st.session_state:
852
- st.session_state.rb_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
853
- if 'wr_freq' not in st.session_state:
854
- st.session_state.wr_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
855
- if 'te_freq' not in st.session_state:
856
- st.session_state.te_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
857
- if 'flex_freq' not in st.session_state:
858
- st.session_state.flex_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
859
- if 'dst_freq' not in st.session_state:
860
- st.session_state.dst_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
861
  st.info(t_stamp)
862
  if st.button("Load/Reset Data", key='reset1'):
863
  st.cache_data.clear()
@@ -914,26 +846,6 @@ with tab2:
914
 
915
  with col2:
916
  with st.container():
917
- # if 'Sim_Winner_Display' not in st.session_state:
918
- # 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'])
919
- # if 'Sim_Winner_Frame' not in st.session_state:
920
- # 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'])
921
- # if 'Sim_Winner_Export' not in st.session_state:
922
- # 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'])
923
- # if 'player_freq' not in st.session_state:
924
- # st.session_state.player_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
925
- # if 'qb_freq' not in st.session_state:
926
- # st.session_state.qb_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
927
- # if 'rb_freq' not in st.session_state:
928
- # st.session_state.rb_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
929
- # if 'wr_freq' not in st.session_state:
930
- # st.session_state.wr_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
931
- # if 'te_freq' not in st.session_state:
932
- # st.session_state.te_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
933
- # if 'flex_freq' not in st.session_state:
934
- # st.session_state.flex_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
935
- # if 'dst_freq' not in st.session_state:
936
- # st.session_state.dst_freq = pd.DataFrame(columns=['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge'])
937
  if st.button("Simulate Contest"):
938
  try:
939
  del dst_freq
@@ -991,10 +903,11 @@ with tab2:
991
  OwnFrame['Own'] = OwnFrame['Own%'] * (900 / OwnFrame['Own%'].sum())
992
  Overall_Proj = OwnFrame[['Player', 'Team', 'Position', 'Median', 'Own', 'Salary']]
993
 
 
994
  del OwnFrame
995
 
996
  elif slate_var1 != 'User':
997
- initial_proj = raw_baselines
998
  drop_frame = initial_proj.drop_duplicates(subset = 'Player',keep = 'first')
999
  OwnFrame = drop_frame[['Player', 'Team', 'Position', 'Median', 'Own', 'Floor', 'Ceiling', 'Salary']]
1000
  if contest_var1 == 'Small':
@@ -1014,6 +927,7 @@ with tab2:
1014
  OwnFrame['Own'] = OwnFrame['Own%'] * (900 / OwnFrame['Own%'].sum())
1015
  Overall_Proj = OwnFrame[['Player', 'Team', 'Position', 'Median', 'Own', 'Salary']]
1016
 
 
1017
  del initial_proj
1018
  del drop_frame
1019
  del OwnFrame
@@ -1254,12 +1168,15 @@ with tab2:
1254
  del vec_stdev_map
1255
  del sample_arrays
1256
  del final_array
1257
- # del best_lineup
 
1258
  st.write('Contest simulation complete')
1259
  # Initial setup
1260
  Sim_Winner_Frame = pd.DataFrame(np.concatenate(Sim_Winners), columns=FinalPortfolio.columns.tolist() + ['Fantasy'])
1261
  Sim_Winner_Frame['GPP_Proj'] = (Sim_Winner_Frame['Projection'] + Sim_Winner_Frame['Fantasy']) / 2
1262
 
 
 
1263
  # Type Casting
1264
  type_cast_dict = {'Salary': int, 'Projection': np.float16, 'Fantasy': np.float16, 'GPP_Proj': np.float16}
1265
  Sim_Winner_Frame = Sim_Winner_Frame.astype(type_cast_dict)
@@ -1270,6 +1187,8 @@ with tab2:
1270
  # Data Copying
1271
  st.session_state.Sim_Winner_Export = Sim_Winner_Frame.copy()
1272
 
 
 
1273
  # Conditional Replacement
1274
  columns_to_replace = ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST']
1275
 
@@ -1285,7 +1204,7 @@ with tab2:
1285
  st.session_state.Sim_Winner_Export[col].replace(replace_dict, inplace=True)
1286
 
1287
 
1288
- player_freq = pd.DataFrame(np.column_stack(np.unique(Sim_Winner_Frame.iloc[:,0:9].values, return_counts=True)),
1289
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1290
  player_freq['Freq'] = player_freq['Freq'].astype(int)
1291
  player_freq['Position'] = player_freq['Player'].map(maps_dict['Pos_map'])
@@ -1298,8 +1217,9 @@ with tab2:
1298
  player_freq['Team'] = player_freq['Team'].replace(item_list, team_list)
1299
 
1300
  st.session_state.player_freq = player_freq[['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge']]
 
1301
 
1302
- qb_freq = pd.DataFrame(np.column_stack(np.unique(Sim_Winner_Frame.iloc[:,0:1].values, return_counts=True)),
1303
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1304
  qb_freq['Freq'] = qb_freq['Freq'].astype(int)
1305
  qb_freq['Position'] = qb_freq['Player'].map(maps_dict['Pos_map'])
@@ -1312,8 +1232,9 @@ with tab2:
1312
  qb_freq['Team'] = qb_freq['Team'].replace(item_list, team_list)
1313
 
1314
  st.session_state.qb_freq = qb_freq[['Player', 'Team', 'Position', 'Salary', 'Proj Own', 'Exposure', 'Edge']]
 
1315
 
1316
- rb_freq = pd.DataFrame(np.column_stack(np.unique(Sim_Winner_Frame.iloc[:,[1, 2]].values, return_counts=True)),
1317
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1318
  rb_freq['Freq'] = rb_freq['Freq'].astype(int)
1319
  rb_freq['Position'] = rb_freq['Player'].map(maps_dict['Pos_map'])
@@ -1326,8 +1247,9 @@ with tab2:
1326
  rb_freq['Team'] = rb_freq['Team'].replace(item_list, team_list)
1327
 
1328
  st.session_state.rb_freq = rb_freq[['Player', 'Team', 'Position', 'Salary', 'Proj Own', 'Exposure', 'Edge']]
 
1329
 
1330
- wr_freq = pd.DataFrame(np.column_stack(np.unique(Sim_Winner_Frame.iloc[:,[3, 4, 5]].values, return_counts=True)),
1331
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1332
  wr_freq['Freq'] = wr_freq['Freq'].astype(int)
1333
  wr_freq['Position'] = wr_freq['Player'].map(maps_dict['Pos_map'])
@@ -1340,8 +1262,9 @@ with tab2:
1340
  wr_freq['Team'] = wr_freq['Team'].replace(item_list, team_list)
1341
 
1342
  st.session_state.wr_freq = wr_freq[['Player', 'Team', 'Position', 'Salary', 'Proj Own', 'Exposure', 'Edge']]
 
1343
 
1344
- te_freq = pd.DataFrame(np.column_stack(np.unique(Sim_Winner_Frame.iloc[:,[6]].values, return_counts=True)),
1345
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1346
  te_freq['Freq'] = te_freq['Freq'].astype(int)
1347
  te_freq['Position'] = te_freq['Player'].map(maps_dict['Pos_map'])
@@ -1354,8 +1277,9 @@ with tab2:
1354
  te_freq['Team'] = te_freq['Team'].replace(item_list, team_list)
1355
 
1356
  st.session_state.te_freq = te_freq[['Player', 'Team', 'Position', 'Salary', 'Proj Own', 'Exposure', 'Edge']]
 
1357
 
1358
- flex_freq = pd.DataFrame(np.column_stack(np.unique(Sim_Winner_Frame.iloc[:,[7]].values, return_counts=True)),
1359
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1360
  flex_freq['Freq'] = flex_freq['Freq'].astype(int)
1361
  flex_freq['Position'] = flex_freq['Player'].map(maps_dict['Pos_map'])
@@ -1368,8 +1292,9 @@ with tab2:
1368
  flex_freq['Team'] = flex_freq['Team'].replace(item_list, team_list)
1369
 
1370
  st.session_state.flex_freq = flex_freq[['Player', 'Team', 'Position', 'Salary', 'Proj Own', 'Exposure', 'Edge']]
 
1371
 
1372
- dst_freq = pd.DataFrame(np.column_stack(np.unique(Sim_Winner_Frame.iloc[:,8:9].values, return_counts=True)),
1373
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1374
  dst_freq['Freq'] = dst_freq['Freq'].astype(int)
1375
  dst_freq['Position'] = dst_freq['Player'].map(maps_dict['Pos_map'])
@@ -1382,6 +1307,8 @@ with tab2:
1382
  dst_freq['Team'] = dst_freq['Team'].replace(item_list, team_list)
1383
 
1384
  st.session_state.dst_freq = dst_freq[['Player', 'Team', 'Position', 'Salary', 'Proj Own', 'Exposure', 'Edge']]
 
 
1385
 
1386
  with st.container():
1387
  simulate_container = st.empty()
 
5
  if not name.startswith('_'):
6
  del globals()[name]
7
 
 
8
  import numpy as np
9
  import pandas as pd
10
  import streamlit as st
11
  import gspread
 
12
  import random
 
 
13
 
14
  @st.cache_resource
15
  def init_conn():
 
34
 
35
  gc = init_conn()
36
 
 
 
 
 
 
 
37
  freq_format = {'Proj Own': '{:.2%}', 'Exposure': '{:.2%}', 'Edge': '{:.2%}'}
38
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  @st.cache_resource(ttl = 300)
40
  def load_dk_player_projections():
41
  sh = gc.open_by_url('https://docs.google.com/spreadsheets/d/1I_1Ve3F4tftgfLQQoRKOJ351XfEG48s36OxXUKxmgS8/edit#gid=1391856348')
 
225
  RandomPortfolio = pd.DataFrame(np.hstack(all_choices), columns=['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST'])
226
  RandomPortfolio['User/Field'] = 0
227
 
228
+ del total_elements
229
+ del all_choices
230
  del O_merge
231
 
232
  return RandomPortfolio, maps_dict, ranges_dict, full_pos_player_dict
 
239
  stack_num = random.randint(1, 3)
240
  stacking_dict = create_stack_options(raw_baselines, stack_num)
241
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
242
  RandomPortfolio['QB'] = pd.Series(list(RandomPortfolio['QB'].map(qb_dict)), dtype="string[pyarrow]")
243
  RandomPortfolio['RB1'] = pd.Series(list(RandomPortfolio['RB1'].map(full_pos_player_dict['pos_dicts'][0])), dtype="string[pyarrow]")
244
  RandomPortfolio['RB2'] = pd.Series(list(RandomPortfolio['RB2'].map(full_pos_player_dict['pos_dicts'][0])), dtype="string[pyarrow]")
 
259
  del stack_num
260
  del stacking_dict
261
 
 
 
262
  RandomPortfolio['QBs'] = RandomPortfolio['QB'].map(maps_dict['Salary_map']).astype(np.int32)
263
  RandomPortfolio['RB1s'] = RandomPortfolio['RB1'].map(maps_dict['Salary_map']).astype(np.int32)
264
  RandomPortfolio['RB2s'] = RandomPortfolio['RB2'].map(maps_dict['Salary_map']).astype(np.int32)
 
790
  with tab2:
791
  col1, col2 = st.columns([1, 7])
792
  with col1:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
793
  st.info(t_stamp)
794
  if st.button("Load/Reset Data", key='reset1'):
795
  st.cache_data.clear()
 
846
 
847
  with col2:
848
  with st.container():
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
849
  if st.button("Simulate Contest"):
850
  try:
851
  del dst_freq
 
903
  OwnFrame['Own'] = OwnFrame['Own%'] * (900 / OwnFrame['Own%'].sum())
904
  Overall_Proj = OwnFrame[['Player', 'Team', 'Position', 'Median', 'Own', 'Salary']]
905
 
906
+ del proj_dataframe
907
  del OwnFrame
908
 
909
  elif slate_var1 != 'User':
910
+ initial_proj = raw_baselines.copy()
911
  drop_frame = initial_proj.drop_duplicates(subset = 'Player',keep = 'first')
912
  OwnFrame = drop_frame[['Player', 'Team', 'Position', 'Median', 'Own', 'Floor', 'Ceiling', 'Salary']]
913
  if contest_var1 == 'Small':
 
927
  OwnFrame['Own'] = OwnFrame['Own%'] * (900 / OwnFrame['Own%'].sum())
928
  Overall_Proj = OwnFrame[['Player', 'Team', 'Position', 'Median', 'Own', 'Salary']]
929
 
930
+ del raw_baselines
931
  del initial_proj
932
  del drop_frame
933
  del OwnFrame
 
1168
  del vec_stdev_map
1169
  del sample_arrays
1170
  del final_array
1171
+ del fp_array
1172
+ del fp_random
1173
  st.write('Contest simulation complete')
1174
  # Initial setup
1175
  Sim_Winner_Frame = pd.DataFrame(np.concatenate(Sim_Winners), columns=FinalPortfolio.columns.tolist() + ['Fantasy'])
1176
  Sim_Winner_Frame['GPP_Proj'] = (Sim_Winner_Frame['Projection'] + Sim_Winner_Frame['Fantasy']) / 2
1177
 
1178
+ del FinalPortfolio
1179
+
1180
  # Type Casting
1181
  type_cast_dict = {'Salary': int, 'Projection': np.float16, 'Fantasy': np.float16, 'GPP_Proj': np.float16}
1182
  Sim_Winner_Frame = Sim_Winner_Frame.astype(type_cast_dict)
 
1187
  # Data Copying
1188
  st.session_state.Sim_Winner_Export = Sim_Winner_Frame.copy()
1189
 
1190
+ del Sim_Winner_Frame
1191
+
1192
  # Conditional Replacement
1193
  columns_to_replace = ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST']
1194
 
 
1204
  st.session_state.Sim_Winner_Export[col].replace(replace_dict, inplace=True)
1205
 
1206
 
1207
+ player_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Frame.iloc[:,0:9].values, return_counts=True)),
1208
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1209
  player_freq['Freq'] = player_freq['Freq'].astype(int)
1210
  player_freq['Position'] = player_freq['Player'].map(maps_dict['Pos_map'])
 
1217
  player_freq['Team'] = player_freq['Team'].replace(item_list, team_list)
1218
 
1219
  st.session_state.player_freq = player_freq[['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge']]
1220
+ del player_freq
1221
 
1222
+ qb_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Frame.iloc[:,0:1].values, return_counts=True)),
1223
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1224
  qb_freq['Freq'] = qb_freq['Freq'].astype(int)
1225
  qb_freq['Position'] = qb_freq['Player'].map(maps_dict['Pos_map'])
 
1232
  qb_freq['Team'] = qb_freq['Team'].replace(item_list, team_list)
1233
 
1234
  st.session_state.qb_freq = qb_freq[['Player', 'Team', 'Position', 'Salary', 'Proj Own', 'Exposure', 'Edge']]
1235
+ del qb_freq
1236
 
1237
+ rb_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Frame.iloc[:,[1, 2]].values, return_counts=True)),
1238
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1239
  rb_freq['Freq'] = rb_freq['Freq'].astype(int)
1240
  rb_freq['Position'] = rb_freq['Player'].map(maps_dict['Pos_map'])
 
1247
  rb_freq['Team'] = rb_freq['Team'].replace(item_list, team_list)
1248
 
1249
  st.session_state.rb_freq = rb_freq[['Player', 'Team', 'Position', 'Salary', 'Proj Own', 'Exposure', 'Edge']]
1250
+ del rb_freq
1251
 
1252
+ wr_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Frame.iloc[:,[3, 4, 5]].values, return_counts=True)),
1253
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1254
  wr_freq['Freq'] = wr_freq['Freq'].astype(int)
1255
  wr_freq['Position'] = wr_freq['Player'].map(maps_dict['Pos_map'])
 
1262
  wr_freq['Team'] = wr_freq['Team'].replace(item_list, team_list)
1263
 
1264
  st.session_state.wr_freq = wr_freq[['Player', 'Team', 'Position', 'Salary', 'Proj Own', 'Exposure', 'Edge']]
1265
+ del wr_freq
1266
 
1267
+ te_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Frame.iloc[:,[6]].values, return_counts=True)),
1268
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1269
  te_freq['Freq'] = te_freq['Freq'].astype(int)
1270
  te_freq['Position'] = te_freq['Player'].map(maps_dict['Pos_map'])
 
1277
  te_freq['Team'] = te_freq['Team'].replace(item_list, team_list)
1278
 
1279
  st.session_state.te_freq = te_freq[['Player', 'Team', 'Position', 'Salary', 'Proj Own', 'Exposure', 'Edge']]
1280
+ del te_freq
1281
 
1282
+ flex_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Frame.iloc[:,[7]].values, return_counts=True)),
1283
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1284
  flex_freq['Freq'] = flex_freq['Freq'].astype(int)
1285
  flex_freq['Position'] = flex_freq['Player'].map(maps_dict['Pos_map'])
 
1292
  flex_freq['Team'] = flex_freq['Team'].replace(item_list, team_list)
1293
 
1294
  st.session_state.flex_freq = flex_freq[['Player', 'Team', 'Position', 'Salary', 'Proj Own', 'Exposure', 'Edge']]
1295
+ del flex_freq
1296
 
1297
+ dst_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Frame.iloc[:,8:9].values, return_counts=True)),
1298
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1299
  dst_freq['Freq'] = dst_freq['Freq'].astype(int)
1300
  dst_freq['Position'] = dst_freq['Player'].map(maps_dict['Pos_map'])
 
1307
  dst_freq['Team'] = dst_freq['Team'].replace(item_list, team_list)
1308
 
1309
  st.session_state.dst_freq = dst_freq[['Player', 'Team', 'Position', 'Salary', 'Proj Own', 'Exposure', 'Edge']]
1310
+ del dst_freq
1311
+ del maps_dict
1312
 
1313
  with st.container():
1314
  simulate_container = st.empty()