Multichem commited on
Commit
50d0f60
·
1 Parent(s): 62e134d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -18
app.py CHANGED
@@ -146,14 +146,14 @@ def run_seed_frame(seed_depth1, Strength_var, strength_grow, Teams_used, Total_R
146
  while RunsVar <= seed_depth_def:
147
  if RunsVar <= 3:
148
  FieldStrength = Strength_var_def
149
- FinalPortfolio, maps_dict = get_correlated_portfolio_for_sim(Total_Runs_def * .25, sharp_split, field_growth)
150
- FinalPortfolio2, maps_dict2 = get_uncorrelated_portfolio_for_sim(Total_Runs_def * .25, sharp_split, field_growth)
151
  FinalPortfolio_init = pd.concat([FinalPortfolio, FinalPortfolio2], axis=0)
152
  maps_dict.update(maps_dict2)
153
  elif RunsVar > 3 and RunsVar <= 4:
154
  FieldStrength += (strength_grow_def + ((30 - len(Teams_used_def)) * .001))
155
- FinalPortfolio3, maps_dict3 = get_correlated_portfolio_for_sim(Total_Runs_def * .25, sharp_split, field_growth)
156
- FinalPortfolio4, maps_dict4 = get_uncorrelated_portfolio_for_sim(Total_Runs_def * .25, sharp_split, field_growth)
157
  FinalPortfolio_merge_3 = pd.concat([FinalPortfolio_init, FinalPortfolio3], axis=0)
158
  FinalPortfolio_merge_4 = pd.concat([FinalPortfolio_merge_3, FinalPortfolio4], axis=0)
159
  FinalPortfolio_step_2 = FinalPortfolio_merge_4.drop_duplicates(subset = ['Projection', 'Own'],keep = 'last').reset_index(drop = True)
@@ -161,8 +161,8 @@ def run_seed_frame(seed_depth1, Strength_var, strength_grow, Teams_used, Total_R
161
  maps_dict.update(maps_dict4)
162
  elif RunsVar > 4:
163
  FieldStrength = 1
164
- FinalPortfolio5, maps_dict5 = get_correlated_portfolio_for_sim(Total_Runs_def * .25, sharp_split, field_growth)
165
- FinalPortfolio6, maps_dict6 = get_uncorrelated_portfolio_for_sim(Total_Runs_def * .25, sharp_split, field_growth)
166
  FinalPortfolio_merge_5 = pd.concat([FinalPortfolio_step_2, FinalPortfolio5], axis=0)
167
  FinalPortfolio_merge_6 = pd.concat([FinalPortfolio_merge_5, FinalPortfolio6], axis=0)
168
  FinalPortfolio_export = FinalPortfolio_merge_6.drop_duplicates(subset = ['Projection', 'Own'],keep = 'last').reset_index(drop = True)
@@ -956,13 +956,16 @@ with tab2:
956
  'team_check_map':dict(zip(cleaport_players.Player,nerf_frame.Team))
957
  }
958
 
959
- FinalPortfolio, maps_dict = run_seed_frame(10, Strength_var, strength_grow, Teams_used, 1000000, field_growth)
960
 
961
  Sim_Winners = sim_contest(2500, FinalPortfolio, CleanPortfolio, maps_dict, up_dict, insert_port)
962
 
963
  # Initial setup
964
  Sim_Winner_Frame = pd.DataFrame(np.concatenate(Sim_Winners), columns=FinalPortfolio.columns.tolist() + ['Fantasy'])
965
  Sim_Winner_Frame['GPP_Proj'] = (Sim_Winner_Frame['Projection'] + Sim_Winner_Frame['Fantasy']) / 2
 
 
 
966
 
967
  # Type Casting
968
  type_cast_dict = {'Salary': int, 'Projection': np.float16, 'Fantasy': np.float16, 'GPP_Proj': np.float16}
@@ -971,10 +974,14 @@ with tab2:
971
  del FinalPortfolio, insert_port, type_cast_dict
972
 
973
  # Sorting
974
- st.session_state.Sim_Winner_Frame = Sim_Winner_Frame.sort_values(by='GPP_Proj', ascending=False)
 
975
 
976
  # Data Copying
977
- st.session_state.Sim_Winner_Export = Sim_Winner_Frame
 
 
 
978
 
979
  # Conditional Replacement
980
  columns_to_replace = ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST']
@@ -989,7 +996,7 @@ with tab2:
989
 
990
  del replace_dict, Sim_Winner_Frame, Sim_Winners
991
 
992
- st.session_state.player_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Frame.iloc[:,0:9].values, return_counts=True)),
993
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
994
  st.session_state.player_freq['Freq'] = st.session_state.player_freq['Freq'].astype(int)
995
  st.session_state.player_freq['Position'] = st.session_state.player_freq['Player'].map(maps_dict['Pos_map'])
@@ -1001,7 +1008,7 @@ with tab2:
1001
  for checkVar in range(len(team_list)):
1002
  st.session_state.player_freq['Team'] = st.session_state.player_freq['Team'].replace(item_list, team_list)
1003
 
1004
- st.session_state.qb_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Frame.iloc[:,0:1].values, return_counts=True)),
1005
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1006
  st.session_state.qb_freq['Freq'] = st.session_state.qb_freq['Freq'].astype(int)
1007
  st.session_state.qb_freq['Position'] = st.session_state.qb_freq['Player'].map(maps_dict['Pos_map'])
@@ -1013,7 +1020,7 @@ with tab2:
1013
  for checkVar in range(len(team_list)):
1014
  st.session_state.qb_freq['Team'] = st.session_state.qb_freq['Team'].replace(item_list, team_list)
1015
 
1016
- st.session_state.rb_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Frame.iloc[:,[1, 2]].values, return_counts=True)),
1017
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1018
  st.session_state.rb_freq['Freq'] = st.session_state.rb_freq['Freq'].astype(int)
1019
  st.session_state.rb_freq['Position'] = st.session_state.rb_freq['Player'].map(maps_dict['Pos_map'])
@@ -1025,7 +1032,7 @@ with tab2:
1025
  for checkVar in range(len(team_list)):
1026
  st.session_state.rb_freq['Team'] = st.session_state.rb_freq['Team'].replace(item_list, team_list)
1027
 
1028
- st.session_state.wr_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Frame.iloc[:,[3, 4, 5]].values, return_counts=True)),
1029
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1030
  st.session_state.wr_freq['Freq'] = st.session_state.wr_freq['Freq'].astype(int)
1031
  st.session_state.wr_freq['Position'] = st.session_state.wr_freq['Player'].map(maps_dict['Pos_map'])
@@ -1037,7 +1044,7 @@ with tab2:
1037
  for checkVar in range(len(team_list)):
1038
  st.session_state.wr_freq['Team'] = st.session_state.wr_freq['Team'].replace(item_list, team_list)
1039
 
1040
- st.session_state.te_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Frame.iloc[:,[6]].values, return_counts=True)),
1041
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1042
  st.session_state.te_freq['Freq'] = st.session_state.te_freq['Freq'].astype(int)
1043
  st.session_state.te_freq['Position'] = st.session_state.te_freq['Player'].map(maps_dict['Pos_map'])
@@ -1049,7 +1056,7 @@ with tab2:
1049
  for checkVar in range(len(team_list)):
1050
  st.session_state.te_freq['Team'] = st.session_state.te_freq['Team'].replace(item_list, team_list)
1051
 
1052
- st.session_state.flex_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Frame.iloc[:,[7]].values, return_counts=True)),
1053
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1054
  st.session_state.flex_freq['Freq'] = st.session_state.flex_freq['Freq'].astype(int)
1055
  st.session_state.flex_freq['Position'] = st.session_state.flex_freq['Player'].map(maps_dict['Pos_map'])
@@ -1061,7 +1068,7 @@ with tab2:
1061
  for checkVar in range(len(team_list)):
1062
  st.session_state.flex_freq['Team'] = st.session_state.flex_freq['Team'].replace(item_list, team_list)
1063
 
1064
- st.session_state.dst_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Frame.iloc[:,8:9].values, return_counts=True)),
1065
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1066
  st.session_state.dst_freq['Freq'] = st.session_state.dst_freq['Freq'].astype(int)
1067
  st.session_state.dst_freq['Position'] = st.session_state.dst_freq['Player'].map(maps_dict['Pos_map'])
@@ -1089,7 +1096,7 @@ with tab2:
1089
  st.dataframe(st.session_state.Sim_Winner_Display.style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').background_gradient(cmap='RdYlGn_r', subset=['Own']).format(precision=2), use_container_width = True)
1090
  if 'Sim_Winner_Export' in st.session_state:
1091
  st.download_button(
1092
- label="Export Tables",
1093
  data=st.session_state.Sim_Winner_Export.to_csv().encode('utf-8'),
1094
  file_name='NFL_consim_export.csv',
1095
  mime='text/csv',
@@ -1168,4 +1175,6 @@ del dkid_dict, fdid_dict
1168
  del static_exposure, overall_exposure
1169
  del insert_port1, Contest_Size, sharp_split, Strength_var, scaling_var, Sort_function, Sim_function, strength_grow, field_growth
1170
  del raw_baselines
1171
- del freq_format
 
 
 
146
  while RunsVar <= seed_depth_def:
147
  if RunsVar <= 3:
148
  FieldStrength = Strength_var_def
149
+ FinalPortfolio, maps_dict = get_correlated_portfolio_for_sim(Total_Runs_def * .1, sharp_split, field_growth)
150
+ FinalPortfolio2, maps_dict2 = get_uncorrelated_portfolio_for_sim(Total_Runs_def * .1, sharp_split, field_growth)
151
  FinalPortfolio_init = pd.concat([FinalPortfolio, FinalPortfolio2], axis=0)
152
  maps_dict.update(maps_dict2)
153
  elif RunsVar > 3 and RunsVar <= 4:
154
  FieldStrength += (strength_grow_def + ((30 - len(Teams_used_def)) * .001))
155
+ FinalPortfolio3, maps_dict3 = get_correlated_portfolio_for_sim(Total_Runs_def * .1, sharp_split, field_growth)
156
+ FinalPortfolio4, maps_dict4 = get_uncorrelated_portfolio_for_sim(Total_Runs_def * .1, sharp_split, field_growth)
157
  FinalPortfolio_merge_3 = pd.concat([FinalPortfolio_init, FinalPortfolio3], axis=0)
158
  FinalPortfolio_merge_4 = pd.concat([FinalPortfolio_merge_3, FinalPortfolio4], axis=0)
159
  FinalPortfolio_step_2 = FinalPortfolio_merge_4.drop_duplicates(subset = ['Projection', 'Own'],keep = 'last').reset_index(drop = True)
 
161
  maps_dict.update(maps_dict4)
162
  elif RunsVar > 4:
163
  FieldStrength = 1
164
+ FinalPortfolio5, maps_dict5 = get_correlated_portfolio_for_sim(Total_Runs_def * .1, sharp_split, field_growth)
165
+ FinalPortfolio6, maps_dict6 = get_uncorrelated_portfolio_for_sim(Total_Runs_def * .1, sharp_split, field_growth)
166
  FinalPortfolio_merge_5 = pd.concat([FinalPortfolio_step_2, FinalPortfolio5], axis=0)
167
  FinalPortfolio_merge_6 = pd.concat([FinalPortfolio_merge_5, FinalPortfolio6], axis=0)
168
  FinalPortfolio_export = FinalPortfolio_merge_6.drop_duplicates(subset = ['Projection', 'Own'],keep = 'last').reset_index(drop = True)
 
956
  'team_check_map':dict(zip(cleaport_players.Player,nerf_frame.Team))
957
  }
958
 
959
+ FinalPortfolio, maps_dict = run_seed_frame(5, Strength_var, strength_grow, Teams_used, 1000000, field_growth)
960
 
961
  Sim_Winners = sim_contest(2500, FinalPortfolio, CleanPortfolio, maps_dict, up_dict, insert_port)
962
 
963
  # Initial setup
964
  Sim_Winner_Frame = pd.DataFrame(np.concatenate(Sim_Winners), columns=FinalPortfolio.columns.tolist() + ['Fantasy'])
965
  Sim_Winner_Frame['GPP_Proj'] = (Sim_Winner_Frame['Projection'] + Sim_Winner_Frame['Fantasy']) / 2
966
+ Sim_Winner_Frame = Sim_Winner_Frame.sort_values(by='GPP_Proj', ascending=False).copy()
967
+ Sim_Winner_Frame['unique_id'] = Sim_Winner_Frame['Projection'].astype(str) + Sim_Winner_Frame['Salary'].astype(str) + Sim_Winner_Frame['Own'].astype(str)
968
+ Sim_Winner_Frame = Sim_Winner_Frame.assign(win_count=Sim_Winner_Frame['unique_id'].map(Sim_Winner_Frame['unique_id'].value_counts()))
969
 
970
  # Type Casting
971
  type_cast_dict = {'Salary': int, 'Projection': np.float16, 'Fantasy': np.float16, 'GPP_Proj': np.float16}
 
974
  del FinalPortfolio, insert_port, type_cast_dict
975
 
976
  # Sorting
977
+ st.session_state.Sim_Winner_Frame = Sim_Winner_Frame.sort_values(by='win_count', ascending=False).copy().drop_duplicates(subset='unique_id').head(100)
978
+ st.session_state.Sim_Winner_Frame.drop(columns='unique_id', inplace=True)
979
 
980
  # Data Copying
981
+ st.session_state.Sim_Winner_Export = Sim_Winner_Frame.copy()
982
+
983
+ # Data Copying
984
+ st.session_state.Sim_Winner_Display = Sim_Winner_Frame.copy()
985
 
986
  # Conditional Replacement
987
  columns_to_replace = ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST']
 
996
 
997
  del replace_dict, Sim_Winner_Frame, Sim_Winners
998
 
999
+ 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)),
1000
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1001
  st.session_state.player_freq['Freq'] = st.session_state.player_freq['Freq'].astype(int)
1002
  st.session_state.player_freq['Position'] = st.session_state.player_freq['Player'].map(maps_dict['Pos_map'])
 
1008
  for checkVar in range(len(team_list)):
1009
  st.session_state.player_freq['Team'] = st.session_state.player_freq['Team'].replace(item_list, team_list)
1010
 
1011
+ st.session_state.qb_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,0:1].values, return_counts=True)),
1012
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1013
  st.session_state.qb_freq['Freq'] = st.session_state.qb_freq['Freq'].astype(int)
1014
  st.session_state.qb_freq['Position'] = st.session_state.qb_freq['Player'].map(maps_dict['Pos_map'])
 
1020
  for checkVar in range(len(team_list)):
1021
  st.session_state.qb_freq['Team'] = st.session_state.qb_freq['Team'].replace(item_list, team_list)
1022
 
1023
+ st.session_state.rb_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,[1, 2]].values, return_counts=True)),
1024
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1025
  st.session_state.rb_freq['Freq'] = st.session_state.rb_freq['Freq'].astype(int)
1026
  st.session_state.rb_freq['Position'] = st.session_state.rb_freq['Player'].map(maps_dict['Pos_map'])
 
1032
  for checkVar in range(len(team_list)):
1033
  st.session_state.rb_freq['Team'] = st.session_state.rb_freq['Team'].replace(item_list, team_list)
1034
 
1035
+ st.session_state.wr_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,[3, 4, 5]].values, return_counts=True)),
1036
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1037
  st.session_state.wr_freq['Freq'] = st.session_state.wr_freq['Freq'].astype(int)
1038
  st.session_state.wr_freq['Position'] = st.session_state.wr_freq['Player'].map(maps_dict['Pos_map'])
 
1044
  for checkVar in range(len(team_list)):
1045
  st.session_state.wr_freq['Team'] = st.session_state.wr_freq['Team'].replace(item_list, team_list)
1046
 
1047
+ st.session_state.te_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,[6]].values, return_counts=True)),
1048
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1049
  st.session_state.te_freq['Freq'] = st.session_state.te_freq['Freq'].astype(int)
1050
  st.session_state.te_freq['Position'] = st.session_state.te_freq['Player'].map(maps_dict['Pos_map'])
 
1056
  for checkVar in range(len(team_list)):
1057
  st.session_state.te_freq['Team'] = st.session_state.te_freq['Team'].replace(item_list, team_list)
1058
 
1059
+ st.session_state.flex_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,[7]].values, return_counts=True)),
1060
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1061
  st.session_state.flex_freq['Freq'] = st.session_state.flex_freq['Freq'].astype(int)
1062
  st.session_state.flex_freq['Position'] = st.session_state.flex_freq['Player'].map(maps_dict['Pos_map'])
 
1068
  for checkVar in range(len(team_list)):
1069
  st.session_state.flex_freq['Team'] = st.session_state.flex_freq['Team'].replace(item_list, team_list)
1070
 
1071
+ st.session_state.dst_freq = pd.DataFrame(np.column_stack(np.unique(st.session_state.Sim_Winner_Display.iloc[:,8:9].values, return_counts=True)),
1072
  columns=['Player','Freq']).sort_values('Freq', ascending=False).reset_index(drop=True)
1073
  st.session_state.dst_freq['Freq'] = st.session_state.dst_freq['Freq'].astype(int)
1074
  st.session_state.dst_freq['Position'] = st.session_state.dst_freq['Player'].map(maps_dict['Pos_map'])
 
1096
  st.dataframe(st.session_state.Sim_Winner_Display.style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').background_gradient(cmap='RdYlGn_r', subset=['Own']).format(precision=2), use_container_width = True)
1097
  if 'Sim_Winner_Export' in st.session_state:
1098
  st.download_button(
1099
+ label="Export Full Frame",
1100
  data=st.session_state.Sim_Winner_Export.to_csv().encode('utf-8'),
1101
  file_name='NFL_consim_export.csv',
1102
  mime='text/csv',
 
1175
  del static_exposure, overall_exposure
1176
  del insert_port1, Contest_Size, sharp_split, Strength_var, scaling_var, Sort_function, Sim_function, strength_grow, field_growth
1177
  del raw_baselines
1178
+ del freq_format
1179
+
1180
+ gc.collect()