James McCool
commited on
Commit
·
dadc802
1
Parent(s):
19b70e3
trying to add a position parse argument for the player stats
Browse files
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':
|
| 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':
|
| 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':
|
| 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':
|
| 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}',
|