James McCool commited on
Commit
d1401a0
·
1 Parent(s): 92176ea

Refactor stack column dictionary in 'app.py' to support multiple sites, enhancing flexibility in player stacking calculations for Draftkings and Fanduel.

Browse files
Files changed (1) hide show
  1. app.py +18 -9
app.py CHANGED
@@ -31,11 +31,20 @@ from global_func.reassess_edge import reassess_edge
31
  freq_format = {'Finish_percentile': '{:.2%}', 'Lineup Edge': '{:.2%}', 'Win%': '{:.2%}'}
32
  stacking_sports = ['MLB', 'NHL', 'NFL', 'LOL', 'NCAAF']
33
  stack_column_dict = {
34
- 'MLB': ['C', 'C/1B', '1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3'],
35
- 'NHL': ['C', 'W', 'D'],
36
- 'NFL': ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX'],
37
- 'LOL': ['TOP', 'JNG', 'MID', 'ADC', 'SUP', 'TEAM'],
38
- 'NCAAF': ['QB', 'WR1', 'WR2', 'WR3', 'FLEX', 'SFLEX'],
 
 
 
 
 
 
 
 
 
39
  }
40
  player_wrong_names_mlb = ['Enrique Hernandez', 'Joseph Cantillo', 'Mike Soroka', 'Jakob Bauers', 'Temi Fágbénlé']
41
  player_right_names_mlb = ['Kike Hernandez', 'Joey Cantillo', 'Michael Soroka', 'Jake Bauers', 'Temi Fagbenle']
@@ -452,16 +461,16 @@ if selected_tab == 'Data Load':
452
  team_dict = dict(zip(st.session_state['projections_df']['player_names'], st.session_state['projections_df']['team']))
453
  st.session_state['portfolio']['Stack'] = st.session_state['portfolio'].apply(
454
  lambda row: Counter(
455
- team_dict.get(player, '') for player in row[stack_column_dict[sport_var]]
456
  if team_dict.get(player, '') != ''
457
- ).most_common(1)[0][0] if any(team_dict.get(player, '') for player in row[stack_column_dict[sport_var]]) else '',
458
  axis=1
459
  )
460
  st.session_state['portfolio']['Size'] = st.session_state['portfolio'].apply(
461
  lambda row: Counter(
462
- team_dict.get(player, '') for player in row[stack_column_dict[sport_var]]
463
  if team_dict.get(player, '') != ''
464
- ).most_common(1)[0][1] if any(team_dict.get(player, '') for player in row[stack_column_dict[sport_var]]) else 0,
465
  axis=1
466
  )
467
  st.session_state['stack_dict'] = dict(zip(st.session_state['portfolio'].index, st.session_state['portfolio']['Stack']))
 
31
  freq_format = {'Finish_percentile': '{:.2%}', 'Lineup Edge': '{:.2%}', 'Win%': '{:.2%}'}
32
  stacking_sports = ['MLB', 'NHL', 'NFL', 'LOL', 'NCAAF']
33
  stack_column_dict = {
34
+ 'Draftkings': {
35
+ 'MLB': ['C', '1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3'],
36
+ 'NHL': ['C', 'W', 'D'],
37
+ 'NFL': ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX'],
38
+ 'LOL': ['TOP', 'JNG', 'MID', 'ADC', 'SUP', 'TEAM'],
39
+ 'NCAAF': ['QB', 'WR1', 'WR2', 'WR3', 'FLEX', 'SFLEX'],
40
+ },
41
+ 'Fanduel': {
42
+ 'MLB': ['C/1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL'],
43
+ 'NHL': ['C', 'W', 'D'],
44
+ 'NFL': ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX'],
45
+ 'LOL': ['TOP', 'JNG', 'MID', 'ADC', 'SUP', 'TEAM'],
46
+ 'NCAAF': ['QB', 'WR1', 'WR2', 'WR3', 'FLEX', 'SFLEX'],
47
+ },
48
  }
49
  player_wrong_names_mlb = ['Enrique Hernandez', 'Joseph Cantillo', 'Mike Soroka', 'Jakob Bauers', 'Temi Fágbénlé']
50
  player_right_names_mlb = ['Kike Hernandez', 'Joey Cantillo', 'Michael Soroka', 'Jake Bauers', 'Temi Fagbenle']
 
461
  team_dict = dict(zip(st.session_state['projections_df']['player_names'], st.session_state['projections_df']['team']))
462
  st.session_state['portfolio']['Stack'] = st.session_state['portfolio'].apply(
463
  lambda row: Counter(
464
+ team_dict.get(player, '') for player in row[stack_column_dict[site_var][sport_var]]
465
  if team_dict.get(player, '') != ''
466
+ ).most_common(1)[0][0] if any(team_dict.get(player, '') for player in row[stack_column_dict[site_var][sport_var]]) else '',
467
  axis=1
468
  )
469
  st.session_state['portfolio']['Size'] = st.session_state['portfolio'].apply(
470
  lambda row: Counter(
471
+ team_dict.get(player, '') for player in row[stack_column_dict[site_var][sport_var]]
472
  if team_dict.get(player, '') != ''
473
+ ).most_common(1)[0][1] if any(team_dict.get(player, '') for player in row[stack_column_dict[site_var][sport_var]]) else 0,
474
  axis=1
475
  )
476
  st.session_state['stack_dict'] = dict(zip(st.session_state['portfolio'].index, st.session_state['portfolio']['Stack']))