Spaces:
Build error
Build error
Update app.py
Browse files
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(
|
| 267 |
-
CleanPortfolio['FLEX1'].map(
|
| 268 |
-
CleanPortfolio['FLEX2'].map(
|
| 269 |
-
CleanPortfolio['FLEX3'].map(
|
| 270 |
-
CleanPortfolio['FLEX4'].map(
|
| 271 |
-
CleanPortfolio['FLEX5'].map(
|
| 272 |
]).astype(np.int16)
|
| 273 |
if insert_port == 1:
|
| 274 |
-
CleanPortfolio['Projection'] = sum([CleanPortfolio['CPT'].map(
|
| 275 |
-
CleanPortfolio['FLEX1'].map(
|
| 276 |
-
CleanPortfolio['FLEX2'].map(
|
| 277 |
-
CleanPortfolio['FLEX3'].map(
|
| 278 |
-
CleanPortfolio['FLEX4'].map(
|
| 279 |
-
CleanPortfolio['FLEX5'].map(
|
| 280 |
]).astype(np.float16)
|
| 281 |
if insert_port == 1:
|
| 282 |
-
CleanPortfolio['Own'] = sum([CleanPortfolio['CPT'].map(
|
| 283 |
-
CleanPortfolio['FLEX1'].map(
|
| 284 |
-
CleanPortfolio['FLEX2'].map(
|
| 285 |
-
CleanPortfolio['FLEX3'].map(
|
| 286 |
-
CleanPortfolio['FLEX4'].map(
|
| 287 |
-
CleanPortfolio['FLEX5'].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(
|
| 366 |
-
CleanPortfolio['FLEX1'].map(
|
| 367 |
-
CleanPortfolio['FLEX2'].map(
|
| 368 |
-
CleanPortfolio['FLEX3'].map(
|
| 369 |
-
CleanPortfolio['FLEX4'].map(
|
| 370 |
-
CleanPortfolio['FLEX5'].map(
|
| 371 |
]).astype(np.int16)
|
| 372 |
if insert_port == 1:
|
| 373 |
-
CleanPortfolio['Projection'] = sum([CleanPortfolio['CPT'].map(
|
| 374 |
-
CleanPortfolio['FLEX1'].map(
|
| 375 |
-
CleanPortfolio['FLEX2'].map(
|
| 376 |
-
CleanPortfolio['FLEX3'].map(
|
| 377 |
-
CleanPortfolio['FLEX4'].map(
|
| 378 |
-
CleanPortfolio['FLEX5'].map(
|
| 379 |
]).astype(np.float16)
|
| 380 |
if insert_port == 1:
|
| 381 |
-
CleanPortfolio['Own'] = sum([CleanPortfolio['CPT'].map(
|
| 382 |
-
CleanPortfolio['FLEX1'].map(
|
| 383 |
-
CleanPortfolio['FLEX2'].map(
|
| 384 |
-
CleanPortfolio['FLEX3'].map(
|
| 385 |
-
CleanPortfolio['FLEX4'].map(
|
| 386 |
-
CleanPortfolio['FLEX5'].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=['
|
| 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']] *=
|
|
|
|
| 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=['
|
| 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']] *=
|
|
|
|
|
|
|
| 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 |
-
|
| 984 |
-
|
| 985 |
-
|
| 986 |
-
|
| 987 |
-
|
| 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 |
-
|
| 1009 |
-
|
| 1010 |
-
|
| 1011 |
-
|
| 1012 |
-
|
| 1013 |
-
|
| 1014 |
-
|
| 1015 |
-
|
| 1016 |
-
|
| 1017 |
-
|
| 1018 |
-
|
| 1019 |
-
|
| 1020 |
-
|
| 1021 |
-
|
| 1022 |
-
|
| 1023 |
-
|
| 1024 |
-
|
| 1025 |
-
|
| 1026 |
-
|
| 1027 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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
|
| 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:
|