Multichem commited on
Commit
e046b36
·
1 Parent(s): 423ffa6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +83 -86
app.py CHANGED
@@ -263,28 +263,28 @@ def get_correlated_portfolio_for_sim(Total_Sample_Size):
263
  # st.table(RandomPortfolioDF.head(50))
264
 
265
  if insert_port == 1:
266
- CleanPortfolio['Salary'] = sum([CleanPortfolio['CPT'].map(maps_dict['Salary_map']) * 1.5,
267
- CleanPortfolio['FLEX1'].map(maps_dict['Salary_map']),
268
- CleanPortfolio['FLEX2'].map(maps_dict['Salary_map']),
269
- CleanPortfolio['FLEX3'].map(maps_dict['Salary_map']),
270
- CleanPortfolio['FLEX4'].map(maps_dict['Salary_map']),
271
- CleanPortfolio['FLEX5'].map(maps_dict['Salary_map'])
272
  ]).astype(np.int16)
273
  if insert_port == 1:
274
- CleanPortfolio['Projection'] = sum([CleanPortfolio['CPT'].map(maps_dict['Projection_map']) * 1.5,
275
- CleanPortfolio['FLEX1'].map(maps_dict['Projection_map']),
276
- CleanPortfolio['FLEX2'].map(maps_dict['Projection_map']),
277
- CleanPortfolio['FLEX3'].map(maps_dict['Projection_map']),
278
- CleanPortfolio['FLEX4'].map(maps_dict['Projection_map']),
279
- CleanPortfolio['FLEX5'].map(maps_dict['Projection_map'])
280
  ]).astype(np.float16)
281
  if insert_port == 1:
282
- CleanPortfolio['Own'] = sum([CleanPortfolio['CPT'].map(maps_dict['own_map']) / 4,
283
- CleanPortfolio['FLEX1'].map(maps_dict['own_map']),
284
- CleanPortfolio['FLEX2'].map(maps_dict['own_map']),
285
- CleanPortfolio['FLEX3'].map(maps_dict['own_map']),
286
- CleanPortfolio['FLEX4'].map(maps_dict['own_map']),
287
- CleanPortfolio['FLEX5'].map(maps_dict['own_map'])
288
  ]).astype(np.float16)
289
 
290
  if site_var1 == 'Draftkings':
@@ -362,28 +362,28 @@ def get_uncorrelated_portfolio_for_sim(Total_Sample_Size):
362
  # st.table(RandomPortfolioDF.head(50))
363
 
364
  if insert_port == 1:
365
- CleanPortfolio['Salary'] = sum([CleanPortfolio['CPT'].map(maps_dict['Salary_map']) * 1.5,
366
- CleanPortfolio['FLEX1'].map(maps_dict['Salary_map']),
367
- CleanPortfolio['FLEX2'].map(maps_dict['Salary_map']),
368
- CleanPortfolio['FLEX3'].map(maps_dict['Salary_map']),
369
- CleanPortfolio['FLEX4'].map(maps_dict['Salary_map']),
370
- CleanPortfolio['FLEX5'].map(maps_dict['Salary_map'])
371
  ]).astype(np.int16)
372
  if insert_port == 1:
373
- CleanPortfolio['Projection'] = sum([CleanPortfolio['CPT'].map(maps_dict['Projection_map']) * 1.5,
374
- CleanPortfolio['FLEX1'].map(maps_dict['Projection_map']),
375
- CleanPortfolio['FLEX2'].map(maps_dict['Projection_map']),
376
- CleanPortfolio['FLEX3'].map(maps_dict['Projection_map']),
377
- CleanPortfolio['FLEX4'].map(maps_dict['Projection_map']),
378
- CleanPortfolio['FLEX5'].map(maps_dict['Projection_map'])
379
  ]).astype(np.float16)
380
  if insert_port == 1:
381
- CleanPortfolio['Own'] = sum([CleanPortfolio['CPT'].map(maps_dict['own_map']) / 4,
382
- CleanPortfolio['FLEX1'].map(maps_dict['own_map']),
383
- CleanPortfolio['FLEX2'].map(maps_dict['own_map']),
384
- CleanPortfolio['FLEX3'].map(maps_dict['own_map']),
385
- CleanPortfolio['FLEX4'].map(maps_dict['own_map']),
386
- CleanPortfolio['FLEX5'].map(maps_dict['own_map'])
387
  ]).astype(np.float16)
388
 
389
  if site_var1 == 'Draftkings':
@@ -903,7 +903,7 @@ with tab2:
903
  CleanPortfolio['User/Field'] = CleanPortfolio['index'] + 1
904
  CleanPortfolio.drop(columns=['index'], inplace=True)
905
  CleanPortfolio.replace('', np.nan, inplace=True)
906
- CleanPortfolio.dropna(subset=['QB'], inplace=True)
907
 
908
  # Create cleaport_players DataFrame
909
  unique_vals, counts = np.unique(CleanPortfolio.iloc[:, 0:6].values, return_counts=True)
@@ -911,14 +911,15 @@ with tab2:
911
 
912
  # Merge and update nerf_frame DataFrame
913
  nerf_frame = pd.merge(cleaport_players, Overall_Proj, on='Player', how='left')
914
- nerf_frame[['Median', 'Floor', 'Ceiling', 'STDev']] *= 0.9
 
915
  del Raw_Portfolio
916
  except:
917
  # Reset index and perform column-wise operations
918
  CleanPortfolio = UserPortfolio.reset_index(drop=True)
919
  CleanPortfolio['User/Field'] = CleanPortfolio.index + 1
920
  CleanPortfolio.replace('', np.nan, inplace=True)
921
- CleanPortfolio.dropna(subset=['QB'], inplace=True)
922
 
923
  # Create cleaport_players DataFrame
924
  unique_vals, counts = np.unique(CleanPortfolio.iloc[:, 0:6].values, return_counts=True)
@@ -926,7 +927,9 @@ with tab2:
926
 
927
  # Merge and update nerf_frame DataFrame
928
  nerf_frame = pd.merge(cleaport_players, Overall_Proj, on='Player', how='left')
929
- nerf_frame[['Median', 'Floor', 'Ceiling', 'STDev']] *= 0.9
 
 
930
 
931
  elif insert_port == 0:
932
  CleanPortfolio = UserPortfolio
@@ -976,57 +979,51 @@ with tab2:
976
  SimVar = 1
977
  Sim_Winners = []
978
  fp_array = FinalPortfolio.values
 
979
  if insert_port == 1:
980
  up_array = CleanPortfolio.values
 
 
 
 
 
 
 
 
981
  st.write('Simulating contest on frames')
982
  while SimVar <= Sim_size:
983
- try:
984
- fp_random = fp_array[np.random.choice(fp_array.shape[0], Contest_Size-len(CleanPortfolio), replace=False)]
985
-
986
- smple_arrays1 = np.c_[fp_random,
987
- np.sum(np.random.normal(
988
- loc = np.vectorize(maps_dict['Projection_map'].__getitem__)(fp_random[:,:-5]),
989
- scale = np.vectorize(maps_dict['STDev_map'].__getitem__)(fp_random[:,:-5])),
990
- axis=1)]
991
- try:
992
- smple_arrays2 = np.c_[up_array,
993
- np.sum(np.random.normal(
994
- loc = np.vectorize(up_dict['Projection_map'].__getitem__)(up_array[:,:-5]),
995
- scale = np.vectorize(up_dict['STDev_map'].__getitem__)(up_array[:,:-5])),
996
- axis=1)]
997
- except:
998
- pass
999
- try:
1000
- smple_arrays = np.vstack((smple_arrays1, smple_arrays2))
1001
- except:
1002
- smple_arrays = smple_arrays1
1003
- final_array = smple_arrays[smple_arrays[:, 7].argsort()[::-1]]
1004
- best_lineup = final_array[final_array[:, -1].argsort(kind='stable')[::-1][:1]]
1005
- Sim_Winners.append(best_lineup)
1006
- SimVar += 1
1007
 
1008
- except:
1009
- FieldStrength += (strength_grow + ((30 - len(Teams_used)) * .001))
1010
- FinalPortfolio3, maps_dict3 = get_correlated_portfolio_for_sim(Total_Runs * field_split)
1011
- FinalPortfolio4, maps_dict4 = get_uncorrelated_portfolio_for_sim(Total_Runs * field_split)
1012
- FinalPortfolio = pd.concat([FinalPortfolio, FinalPortfolio3], axis=0)
1013
- FinalPortfolio = pd.concat([FinalPortfolio, FinalPortfolio4], axis=0)
1014
- try:
1015
- FinalPortfolio = FinalPortfolio.drop_duplicates(subset = ['Projection', 'Ownership'],keep = 'last').reset_index(drop = True)
1016
- except:
1017
- FinalPortfolio = FinalPortfolio.drop_duplicates(subset = ['Projection', 'Own'],keep = 'last').reset_index(drop = True)
1018
- maps_dict.update(maps_dict3)
1019
- maps_dict.update(maps_dict4)
1020
- del FinalPortfolio3
1021
- del maps_dict3
1022
- del FinalPortfolio4
1023
- del maps_dict4
1024
- fp_array = FinalPortfolio.values
1025
- if insert_port == 1:
1026
- up_array = CleanPortfolio.values
1027
- SimVar = SimVar
 
 
 
 
1028
  st.write('Contest simulation complete')
1029
-
1030
  Sim_Winner_Frame = pd.DataFrame(np.concatenate(Sim_Winners), columns=FinalPortfolio.columns.tolist() + ['Fantasy'])
1031
  Sim_Winner_Frame['GPP_Proj'] = (Sim_Winner_Frame['Projection'] + Sim_Winner_Frame['Fantasy']) / 2
1032
  Sim_Winner_Frame['Salary'] = Sim_Winner_Frame['Salary'].astype(int)
@@ -1078,7 +1075,7 @@ with tab2:
1078
  flex_freq = flex_freq[['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge']]
1079
 
1080
  del fp_random
1081
- del smple_arrays
1082
  del final_array
1083
  del fp_array
1084
  try:
 
263
  # st.table(RandomPortfolioDF.head(50))
264
 
265
  if insert_port == 1:
266
+ CleanPortfolio['Salary'] = sum([CleanPortfolio['CPT'].map(up_dict['Salary_map']) * 1.5,
267
+ CleanPortfolio['FLEX1'].map(up_dict['Salary_map']),
268
+ CleanPortfolio['FLEX2'].map(up_dict['Salary_map']),
269
+ CleanPortfolio['FLEX3'].map(up_dict['Salary_map']),
270
+ CleanPortfolio['FLEX4'].map(up_dict['Salary_map']),
271
+ CleanPortfolio['FLEX5'].map(up_dict['Salary_map'])
272
  ]).astype(np.int16)
273
  if insert_port == 1:
274
+ CleanPortfolio['Projection'] = sum([CleanPortfolio['CPT'].map(up_dict['Projection_map']) * 1.5,
275
+ CleanPortfolio['FLEX1'].map(up_dict['Projection_map']),
276
+ CleanPortfolio['FLEX2'].map(up_dict['Projection_map']),
277
+ CleanPortfolio['FLEX3'].map(up_dict['Projection_map']),
278
+ CleanPortfolio['FLEX4'].map(up_dict['Projection_map']),
279
+ CleanPortfolio['FLEX5'].map(up_dict['Projection_map'])
280
  ]).astype(np.float16)
281
  if insert_port == 1:
282
+ CleanPortfolio['Own'] = sum([CleanPortfolio['CPT'].map(up_dict['Own_map']) / 4,
283
+ CleanPortfolio['FLEX1'].map(up_dict['Own_map']),
284
+ CleanPortfolio['FLEX2'].map(up_dict['Own_map']),
285
+ CleanPortfolio['FLEX3'].map(up_dict['Own_map']),
286
+ CleanPortfolio['FLEX4'].map(up_dict['Own_map']),
287
+ CleanPortfolio['FLEX5'].map(up_dict['Own_map'])
288
  ]).astype(np.float16)
289
 
290
  if site_var1 == 'Draftkings':
 
362
  # st.table(RandomPortfolioDF.head(50))
363
 
364
  if insert_port == 1:
365
+ CleanPortfolio['Salary'] = sum([CleanPortfolio['CPT'].map(up_dict['Salary_map']) * 1.5,
366
+ CleanPortfolio['FLEX1'].map(up_dict['Salary_map']),
367
+ CleanPortfolio['FLEX2'].map(up_dict['Salary_map']),
368
+ CleanPortfolio['FLEX3'].map(up_dict['Salary_map']),
369
+ CleanPortfolio['FLEX4'].map(up_dict['Salary_map']),
370
+ CleanPortfolio['FLEX5'].map(up_dict['Salary_map'])
371
  ]).astype(np.int16)
372
  if insert_port == 1:
373
+ CleanPortfolio['Projection'] = sum([CleanPortfolio['CPT'].map(up_dict['Projection_map']) * 1.5,
374
+ CleanPortfolio['FLEX1'].map(up_dict['Projection_map']),
375
+ CleanPortfolio['FLEX2'].map(up_dict['Projection_map']),
376
+ CleanPortfolio['FLEX3'].map(up_dict['Projection_map']),
377
+ CleanPortfolio['FLEX4'].map(up_dict['Projection_map']),
378
+ CleanPortfolio['FLEX5'].map(up_dict['Projection_map'])
379
  ]).astype(np.float16)
380
  if insert_port == 1:
381
+ CleanPortfolio['Own'] = sum([CleanPortfolio['CPT'].map(up_dict['Own_map']) / 4,
382
+ CleanPortfolio['FLEX1'].map(up_dict['Own_map']),
383
+ CleanPortfolio['FLEX2'].map(up_dict['Own_map']),
384
+ CleanPortfolio['FLEX3'].map(up_dict['Own_map']),
385
+ CleanPortfolio['FLEX4'].map(up_dict['Own_map']),
386
+ CleanPortfolio['FLEX5'].map(up_dict['Own_map'])
387
  ]).astype(np.float16)
388
 
389
  if site_var1 == 'Draftkings':
 
903
  CleanPortfolio['User/Field'] = CleanPortfolio['index'] + 1
904
  CleanPortfolio.drop(columns=['index'], inplace=True)
905
  CleanPortfolio.replace('', np.nan, inplace=True)
906
+ CleanPortfolio.dropna(subset=['CPT'], inplace=True)
907
 
908
  # Create cleaport_players DataFrame
909
  unique_vals, counts = np.unique(CleanPortfolio.iloc[:, 0:6].values, return_counts=True)
 
911
 
912
  # Merge and update nerf_frame DataFrame
913
  nerf_frame = pd.merge(cleaport_players, Overall_Proj, on='Player', how='left')
914
+ nerf_frame[['Median', 'Floor', 'Ceiling', 'STDev']] *= 1
915
+
916
  del Raw_Portfolio
917
  except:
918
  # Reset index and perform column-wise operations
919
  CleanPortfolio = UserPortfolio.reset_index(drop=True)
920
  CleanPortfolio['User/Field'] = CleanPortfolio.index + 1
921
  CleanPortfolio.replace('', np.nan, inplace=True)
922
+ CleanPortfolio.dropna(subset=['CPT'], inplace=True)
923
 
924
  # Create cleaport_players DataFrame
925
  unique_vals, counts = np.unique(CleanPortfolio.iloc[:, 0:6].values, return_counts=True)
 
927
 
928
  # Merge and update nerf_frame DataFrame
929
  nerf_frame = pd.merge(cleaport_players, Overall_Proj, on='Player', how='left')
930
+ nerf_frame[['Median', 'Floor', 'Ceiling', 'STDev']] *= 1
931
+
932
+ st.table(nerf_frame)
933
 
934
  elif insert_port == 0:
935
  CleanPortfolio = UserPortfolio
 
979
  SimVar = 1
980
  Sim_Winners = []
981
  fp_array = FinalPortfolio.values
982
+
983
  if insert_port == 1:
984
  up_array = CleanPortfolio.values
985
+
986
+ # Pre-vectorize functions
987
+ vec_projection_map = np.vectorize(maps_dict['Projection_map'].__getitem__)
988
+ vec_stdev_map = np.vectorize(maps_dict['STDev_map'].__getitem__)
989
+
990
+ if insert_port == 1:
991
+ vec_up_projection_map = np.vectorize(up_dict['Projection_map'].__getitem__)
992
+ vec_up_stdev_map = np.vectorize(up_dict['STDev_map'].__getitem__)
993
  st.write('Simulating contest on frames')
994
  while SimVar <= Sim_size:
995
+
996
+ if insert_port == 1:
997
+ fp_random = fp_array[np.random.choice(fp_array.shape[0], Contest_Size-len(CleanPortfolio))]
998
+ elif insert_port == 0:
999
+ fp_random = fp_array[np.random.choice(fp_array.shape[0], Contest_Size)]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1000
 
1001
+ sample_arrays1 = np.c_[
1002
+ fp_random,
1003
+ np.sum(np.random.normal(
1004
+ loc=vec_projection_map(fp_random[:, :-5]),
1005
+ scale=vec_stdev_map(fp_random[:, :-5])),
1006
+ axis=1)
1007
+ ]
1008
+
1009
+ if insert_port == 1:
1010
+ sample_arrays2 = np.c_[
1011
+ up_array,
1012
+ np.sum(np.random.normal(
1013
+ loc=vec_up_projection_map(up_array[:, :-5]),
1014
+ scale=vec_up_stdev_map(up_array[:, :-5])),
1015
+ axis=1)
1016
+ ]
1017
+ sample_arrays = np.vstack((sample_arrays1, sample_arrays2))
1018
+ else:
1019
+ sample_arrays = sample_arrays1
1020
+
1021
+ final_array = sample_arrays[sample_arrays[:, 10].argsort()[::-1]]
1022
+ best_lineup = final_array[final_array[:, -1].argsort(kind='stable')[::-1][:1]]
1023
+ Sim_Winners.append(best_lineup)
1024
+ SimVar += 1
1025
  st.write('Contest simulation complete')
1026
+
1027
  Sim_Winner_Frame = pd.DataFrame(np.concatenate(Sim_Winners), columns=FinalPortfolio.columns.tolist() + ['Fantasy'])
1028
  Sim_Winner_Frame['GPP_Proj'] = (Sim_Winner_Frame['Projection'] + Sim_Winner_Frame['Fantasy']) / 2
1029
  Sim_Winner_Frame['Salary'] = Sim_Winner_Frame['Salary'].astype(int)
 
1075
  flex_freq = flex_freq[['Player', 'Position', 'Team', 'Salary', 'Proj Own', 'Exposure', 'Edge']]
1076
 
1077
  del fp_random
1078
+ del sample_arrays
1079
  del final_array
1080
  del fp_array
1081
  try: