James McCool commited on
Commit
dadc802
·
1 Parent(s): 19b70e3

trying to add a position parse argument for the player stats

Browse files
Files changed (1) hide show
  1. app.py +15 -4
app.py CHANGED
@@ -3337,10 +3337,11 @@ if selected_tab == 'Manage Portfolio':
3337
  if cpt_mask.any():
3338
  player_stats.append({
3339
  'Player': f"{player} (CPT)",
3340
- 'Position': st.session_state['map_dict']['pos_map'][player],
3341
  'Team': st.session_state['map_dict']['team_map'][player],
3342
  'ProjOwn': st.session_state['map_dict']['cpt_own_map'][player] / 100.0,
3343
  'Exposure': cpt_mask.sum() / len(st.session_state['display_frame']),
 
3344
  'Avg Median': st.session_state['display_frame'][cpt_mask]['median'].mean(),
3345
  'Avg Own': st.session_state['display_frame'][cpt_mask]['Own'].mean(),
3346
  'Avg Dupes': st.session_state['display_frame'][cpt_mask]['Dupes'].mean(),
@@ -3357,10 +3358,11 @@ if selected_tab == 'Manage Portfolio':
3357
  if flex_mask.any():
3358
  player_stats.append({
3359
  'Player': f"{player} (FLEX)",
3360
- 'Position': st.session_state['map_dict']['pos_map'][player],
3361
  'Team': st.session_state['map_dict']['team_map'][player],
3362
  'ProjOwn': (st.session_state['map_dict']['own_map'][player] - st.session_state['map_dict']['cpt_own_map'][player]) / 100.0,
3363
  'Exposure': flex_mask.sum() / len(st.session_state['display_frame']),
 
3364
  'Avg Median': st.session_state['display_frame'][flex_mask]['median'].mean(),
3365
  'Avg Own': st.session_state['display_frame'][flex_mask]['Own'].mean(),
3366
  'Avg Dupes': st.session_state['display_frame'][flex_mask]['Dupes'].mean(),
@@ -3378,10 +3380,11 @@ if selected_tab == 'Manage Portfolio':
3378
  if cpt_mask.any():
3379
  player_stats.append({
3380
  'Player': f"{player} (CPT)",
3381
- 'Position': st.session_state['map_dict']['pos_map'][player],
3382
  'Team': st.session_state['map_dict']['team_map'][player],
3383
  'ProjOwn': st.session_state['map_dict']['cpt_own_map'][player] / 100.0,
3384
  'Exposure': cpt_mask.sum() / len(st.session_state['display_frame']),
 
3385
  'Avg Median': st.session_state['display_frame'][cpt_mask]['median'].mean(),
3386
  'Avg Own': st.session_state['display_frame'][cpt_mask]['Own'].mean(),
3387
  'Avg Dupes': st.session_state['display_frame'][cpt_mask]['Dupes'].mean(),
@@ -3398,10 +3401,11 @@ if selected_tab == 'Manage Portfolio':
3398
  if flex_mask.any():
3399
  player_stats.append({
3400
  'Player': f"{player} (FLEX)",
3401
- 'Position': st.session_state['map_dict']['pos_map'][player],
3402
  'Team': st.session_state['map_dict']['team_map'][player],
3403
  'ProjOwn': (st.session_state['map_dict']['own_map'][player] - st.session_state['map_dict']['cpt_own_map'][player]) / 100.0,
3404
  'Exposure': flex_mask.sum() / len(st.session_state['display_frame']),
 
3405
  'Avg Median': st.session_state['display_frame'][flex_mask]['median'].mean(),
3406
  'Avg Own': st.session_state['display_frame'][flex_mask]['Own'].mean(),
3407
  'Avg Dupes': st.session_state['display_frame'][flex_mask]['Dupes'].mean(),
@@ -3423,6 +3427,7 @@ if selected_tab == 'Manage Portfolio':
3423
  'Team': st.session_state['map_dict']['team_map'][player],
3424
  'ProjOwn': st.session_state['map_dict']['own_map'][player] / 100.0,
3425
  'Exposure': player_mask.sum() / len(st.session_state['display_frame']),
 
3426
  'Avg Median': st.session_state['display_frame'][player_mask]['median'].mean(),
3427
  'Avg Own': st.session_state['display_frame'][player_mask]['Own'].mean(),
3428
  'Avg Dupes': st.session_state['display_frame'][player_mask]['Dupes'].mean(),
@@ -3437,12 +3442,18 @@ if selected_tab == 'Manage Portfolio':
3437
  if 'origin_player_exposures' not in st.session_state:
3438
  st.session_state['origin_player_exposures'] = player_summary.copy()
3439
 
 
3440
  st.subheader("Player Summary")
 
 
 
 
3441
  st.dataframe(
3442
  st.session_state['player_summary'].style
3443
  .background_gradient(axis=0).background_gradient(cmap='RdYlGn').background_gradient(cmap='RdYlGn_r', subset=['Avg Finish %', 'Avg Own', 'Avg Dupes'])
3444
  .format({
3445
  'ProjOwn': '{:.2%}',
 
3446
  'Avg Median': '{:.2f}',
3447
  'Avg Own': '{:.2f}',
3448
  'Avg Dupes': '{:.2f}',
 
3337
  if cpt_mask.any():
3338
  player_stats.append({
3339
  'Player': f"{player} (CPT)",
3340
+ 'Position': 'CPT',
3341
  'Team': st.session_state['map_dict']['team_map'][player],
3342
  'ProjOwn': st.session_state['map_dict']['cpt_own_map'][player] / 100.0,
3343
  'Exposure': cpt_mask.sum() / len(st.session_state['display_frame']),
3344
+ 'Own_Edge': st.session_state['map_dict']['cpt_own_map'][player] / 100.0 - (cpt_mask.sum() / len(st.session_state['display_frame'])),
3345
  'Avg Median': st.session_state['display_frame'][cpt_mask]['median'].mean(),
3346
  'Avg Own': st.session_state['display_frame'][cpt_mask]['Own'].mean(),
3347
  'Avg Dupes': st.session_state['display_frame'][cpt_mask]['Dupes'].mean(),
 
3358
  if flex_mask.any():
3359
  player_stats.append({
3360
  'Player': f"{player} (FLEX)",
3361
+ 'Position': 'FLEX',
3362
  'Team': st.session_state['map_dict']['team_map'][player],
3363
  'ProjOwn': (st.session_state['map_dict']['own_map'][player] - st.session_state['map_dict']['cpt_own_map'][player]) / 100.0,
3364
  'Exposure': flex_mask.sum() / len(st.session_state['display_frame']),
3365
+ 'Own_Edge': (st.session_state['map_dict']['own_map'][player] - st.session_state['map_dict']['cpt_own_map'][player]) / 100.0 - (flex_mask.sum() / len(st.session_state['display_frame'])),
3366
  'Avg Median': st.session_state['display_frame'][flex_mask]['median'].mean(),
3367
  'Avg Own': st.session_state['display_frame'][flex_mask]['Own'].mean(),
3368
  'Avg Dupes': st.session_state['display_frame'][flex_mask]['Dupes'].mean(),
 
3380
  if cpt_mask.any():
3381
  player_stats.append({
3382
  'Player': f"{player} (CPT)",
3383
+ 'Position': 'CPT',
3384
  'Team': st.session_state['map_dict']['team_map'][player],
3385
  'ProjOwn': st.session_state['map_dict']['cpt_own_map'][player] / 100.0,
3386
  'Exposure': cpt_mask.sum() / len(st.session_state['display_frame']),
3387
+ 'Own_Edge': st.session_state['map_dict']['cpt_own_map'][player] / 100.0 - (cpt_mask.sum() / len(st.session_state['display_frame'])),
3388
  'Avg Median': st.session_state['display_frame'][cpt_mask]['median'].mean(),
3389
  'Avg Own': st.session_state['display_frame'][cpt_mask]['Own'].mean(),
3390
  'Avg Dupes': st.session_state['display_frame'][cpt_mask]['Dupes'].mean(),
 
3401
  if flex_mask.any():
3402
  player_stats.append({
3403
  'Player': f"{player} (FLEX)",
3404
+ 'Position': 'FLEX',
3405
  'Team': st.session_state['map_dict']['team_map'][player],
3406
  'ProjOwn': (st.session_state['map_dict']['own_map'][player] - st.session_state['map_dict']['cpt_own_map'][player]) / 100.0,
3407
  'Exposure': flex_mask.sum() / len(st.session_state['display_frame']),
3408
+ 'Own_Edge': (st.session_state['map_dict']['own_map'][player] - st.session_state['map_dict']['cpt_own_map'][player]) / 100.0 - (flex_mask.sum() / len(st.session_state['display_frame'])),
3409
  'Avg Median': st.session_state['display_frame'][flex_mask]['median'].mean(),
3410
  'Avg Own': st.session_state['display_frame'][flex_mask]['Own'].mean(),
3411
  'Avg Dupes': st.session_state['display_frame'][flex_mask]['Dupes'].mean(),
 
3427
  'Team': st.session_state['map_dict']['team_map'][player],
3428
  'ProjOwn': st.session_state['map_dict']['own_map'][player] / 100.0,
3429
  'Exposure': player_mask.sum() / len(st.session_state['display_frame']),
3430
+ 'Own_Edge': st.session_state['map_dict']['own_map'][player] / 100.0 - (player_mask.sum() / len(st.session_state['display_frame'])),
3431
  'Avg Median': st.session_state['display_frame'][player_mask]['median'].mean(),
3432
  'Avg Own': st.session_state['display_frame'][player_mask]['Own'].mean(),
3433
  'Avg Dupes': st.session_state['display_frame'][player_mask]['Dupes'].mean(),
 
3442
  if 'origin_player_exposures' not in st.session_state:
3443
  st.session_state['origin_player_exposures'] = player_summary.copy()
3444
 
3445
+ position_parse = st.selectbox("Parse by:", options=['All', *st.session_state['player_summary']['Position'].unique()], key='position_parse')
3446
  st.subheader("Player Summary")
3447
+ if position_parse != 'All':
3448
+ st.session_state['player_summary'] = st.session_state['player_summary'][st.session_state['player_summary']['Position'].str.contains(position_parse)]
3449
+ else:
3450
+ st.session_state['player_summary'] = st.session_state['player_summary']
3451
  st.dataframe(
3452
  st.session_state['player_summary'].style
3453
  .background_gradient(axis=0).background_gradient(cmap='RdYlGn').background_gradient(cmap='RdYlGn_r', subset=['Avg Finish %', 'Avg Own', 'Avg Dupes'])
3454
  .format({
3455
  'ProjOwn': '{:.2%}',
3456
+ 'Own_Edge': '{:.2%}',
3457
  'Avg Median': '{:.2f}',
3458
  'Avg Own': '{:.2f}',
3459
  'Avg Dupes': '{:.2f}',