James McCool commited on
Commit
291f3d7
·
1 Parent(s): d1401a0

Enhance stacking column dictionary in 'app.py' to include 'Classic' and 'Showdown' formats for Draftkings and Fanduel, improving flexibility in player stacking calculations across multiple sports.

Browse files
Files changed (1) hide show
  1. app.py +30 -12
app.py CHANGED
@@ -32,18 +32,36 @@ freq_format = {'Finish_percentile': '{:.2%}', 'Lineup Edge': '{:.2%}', 'Win%': '
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é']
@@ -463,14 +481,14 @@ if selected_tab == 'Data Load':
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']))
 
32
  stacking_sports = ['MLB', 'NHL', 'NFL', 'LOL', 'NCAAF']
33
  stack_column_dict = {
34
  'Draftkings': {
35
+ 'Classic': {
36
+ 'MLB': ['C', '1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3'],
37
+ 'NHL': ['C', 'W', 'D'],
38
+ 'NFL': ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX'],
39
+ 'LOL': ['TOP', 'JNG', 'MID', 'ADC', 'SUP', 'TEAM'],
40
+ 'NCAAF': ['QB', 'WR1', 'WR2', 'WR3', 'FLEX', 'SFLEX'],
41
+ },
42
+ 'Showdown': {
43
+ 'MLB': ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
44
+ 'NHL': ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
45
+ 'NFL': ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
46
+ 'LOL': ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
47
+ 'NCAAF': ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
48
+ },
49
  },
50
  'Fanduel': {
51
+ 'Classic': {
52
+ 'MLB': ['C/1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL'],
53
+ 'NHL': ['C', 'W', 'D'],
54
+ 'NFL': ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX'],
55
+ 'LOL': ['TOP', 'JNG', 'MID', 'ADC', 'SUP', 'TEAM'],
56
+ 'NCAAF': ['QB', 'WR1', 'WR2', 'WR3', 'FLEX', 'SFLEX'],
57
+ },
58
+ 'Showdown': {
59
+ 'MLB': ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
60
+ 'NHL': ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
61
+ 'NFL': ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
62
+ 'LOL': ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
63
+ 'NCAAF': ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
64
+ },
65
  },
66
  }
67
  player_wrong_names_mlb = ['Enrique Hernandez', 'Joseph Cantillo', 'Mike Soroka', 'Jakob Bauers', 'Temi Fágbénlé']
 
481
  lambda row: Counter(
482
  team_dict.get(player, '') for player in row[stack_column_dict[site_var][sport_var]]
483
  if team_dict.get(player, '') != ''
484
+ ).most_common(1)[0][0] if any(team_dict.get(player, '') for player in row[stack_column_dict[site_var][type_var][sport_var]]) else '',
485
  axis=1
486
  )
487
  st.session_state['portfolio']['Size'] = st.session_state['portfolio'].apply(
488
  lambda row: Counter(
489
  team_dict.get(player, '') for player in row[stack_column_dict[site_var][sport_var]]
490
  if team_dict.get(player, '') != ''
491
+ ).most_common(1)[0][1] if any(team_dict.get(player, '') for player in row[stack_column_dict[site_var][type_var][sport_var]]) else 0,
492
  axis=1
493
  )
494
  st.session_state['stack_dict'] = dict(zip(st.session_state['portfolio'].index, st.session_state['portfolio']['Stack']))