James McCool commited on
Commit
d23b397
·
1 Parent(s): 9c68c67

adding diversity to analysis tables

Browse files
Files changed (2) hide show
  1. app.py +13 -3
  2. global_func/analyze_player_combos.py +4 -2
app.py CHANGED
@@ -1848,6 +1848,7 @@ if selected_tab == 'Manage Portfolio':
1848
  'Avg Dupes': st.session_state['display_frame'][player_mask]['Dupes'].mean(),
1849
  'Avg Finish %': st.session_state['display_frame'][player_mask]['Finish_percentile'].mean(),
1850
  'Avg Lineup Edge': st.session_state['display_frame'][player_mask]['Lineup Edge'].mean(),
 
1851
  })
1852
  else:
1853
  for player in player_names:
@@ -1864,6 +1865,7 @@ if selected_tab == 'Manage Portfolio':
1864
  'Avg Dupes': st.session_state['display_frame'][cpt_mask]['Dupes'].mean(),
1865
  'Avg Finish %': st.session_state['display_frame'][cpt_mask]['Finish_percentile'].mean(),
1866
  'Avg Lineup Edge': st.session_state['display_frame'][cpt_mask]['Lineup Edge'].mean(),
 
1867
  })
1868
 
1869
  # Create mask for lineups where this player is FLEX (other columns)
@@ -1881,6 +1883,7 @@ if selected_tab == 'Manage Portfolio':
1881
  'Avg Dupes': st.session_state['display_frame'][flex_mask]['Dupes'].mean(),
1882
  'Avg Finish %': st.session_state['display_frame'][flex_mask]['Finish_percentile'].mean(),
1883
  'Avg Lineup Edge': st.session_state['display_frame'][flex_mask]['Lineup Edge'].mean(),
 
1884
  })
1885
  else:
1886
  if sport_var == 'CS2' or sport_var == 'LOL':
@@ -1899,6 +1902,7 @@ if selected_tab == 'Manage Portfolio':
1899
  'Avg Dupes': st.session_state['display_frame'][cpt_mask]['Dupes'].mean(),
1900
  'Avg Finish %': st.session_state['display_frame'][cpt_mask]['Finish_percentile'].mean(),
1901
  'Avg Lineup Edge': st.session_state['display_frame'][cpt_mask]['Lineup Edge'].mean(),
 
1902
  })
1903
 
1904
  # Create mask for lineups where this player is FLEX (other columns)
@@ -1916,6 +1920,7 @@ if selected_tab == 'Manage Portfolio':
1916
  'Avg Dupes': st.session_state['display_frame'][flex_mask]['Dupes'].mean(),
1917
  'Avg Finish %': st.session_state['display_frame'][flex_mask]['Finish_percentile'].mean(),
1918
  'Avg Lineup Edge': st.session_state['display_frame'][flex_mask]['Lineup Edge'].mean(),
 
1919
  })
1920
  elif sport_var != 'CS2' and sport_var != 'LOL':
1921
  # Original Classic format processing
@@ -1934,6 +1939,7 @@ if selected_tab == 'Manage Portfolio':
1934
  'Avg Dupes': st.session_state['display_frame'][player_mask]['Dupes'].mean(),
1935
  'Avg Finish %': st.session_state['display_frame'][player_mask]['Finish_percentile'].mean(),
1936
  'Avg Lineup Edge': st.session_state['display_frame'][player_mask]['Lineup Edge'].mean(),
 
1937
  })
1938
 
1939
  player_summary = pd.DataFrame(player_stats)
@@ -1952,7 +1958,8 @@ if selected_tab == 'Manage Portfolio':
1952
  'Avg Dupes': '{:.2f}',
1953
  'Avg Finish %': '{:.2%}',
1954
  'Avg Lineup Edge': '{:.2%}',
1955
- 'Exposure': '{:.2%}'
 
1956
  }),
1957
  height=400,
1958
  use_container_width=True
@@ -1979,6 +1986,7 @@ if selected_tab == 'Manage Portfolio':
1979
  'Avg Dupes': st.session_state['display_frame'][stack_mask]['Dupes'].mean(),
1980
  'Avg Finish %': st.session_state['display_frame'][stack_mask]['Finish_percentile'].mean(),
1981
  'Avg Lineup Edge': st.session_state['display_frame'][stack_mask]['Lineup Edge'].mean(),
 
1982
  })
1983
  stack_summary = pd.DataFrame(stack_stats)
1984
  stack_summary = stack_summary.sort_values('Lineup Count', ascending=False).drop_duplicates()
@@ -1996,7 +2004,8 @@ if selected_tab == 'Manage Portfolio':
1996
  'Avg Dupes': '{:.2f}',
1997
  'Avg Finish %': '{:.2%}',
1998
  'Avg Lineup Edge': '{:.2%}',
1999
- 'Exposure': '{:.2%}'
 
2000
  }),
2001
  height=400,
2002
  use_container_width=True
@@ -2034,7 +2043,8 @@ if selected_tab == 'Manage Portfolio':
2034
  'Avg Dupes': '{:.2f}',
2035
  'Avg Finish %': '{:.2%}',
2036
  'Avg Lineup Edge': '{:.2%}',
2037
- 'Exposure': '{:.2%}'
 
2038
  }),
2039
  height=400,
2040
  use_container_width=True
 
1848
  'Avg Dupes': st.session_state['display_frame'][player_mask]['Dupes'].mean(),
1849
  'Avg Finish %': st.session_state['display_frame'][player_mask]['Finish_percentile'].mean(),
1850
  'Avg Lineup Edge': st.session_state['display_frame'][player_mask]['Lineup Edge'].mean(),
1851
+ 'Avg Diversity': st.session_state['display_frame'][player_mask]['Diversity'].mean(),
1852
  })
1853
  else:
1854
  for player in player_names:
 
1865
  'Avg Dupes': st.session_state['display_frame'][cpt_mask]['Dupes'].mean(),
1866
  'Avg Finish %': st.session_state['display_frame'][cpt_mask]['Finish_percentile'].mean(),
1867
  'Avg Lineup Edge': st.session_state['display_frame'][cpt_mask]['Lineup Edge'].mean(),
1868
+ 'Avg Diversity': st.session_state['display_frame'][cpt_mask]['Diversity'].mean(),
1869
  })
1870
 
1871
  # Create mask for lineups where this player is FLEX (other columns)
 
1883
  'Avg Dupes': st.session_state['display_frame'][flex_mask]['Dupes'].mean(),
1884
  'Avg Finish %': st.session_state['display_frame'][flex_mask]['Finish_percentile'].mean(),
1885
  'Avg Lineup Edge': st.session_state['display_frame'][flex_mask]['Lineup Edge'].mean(),
1886
+ 'Avg Diversity': st.session_state['display_frame'][flex_mask]['Diversity'].mean(),
1887
  })
1888
  else:
1889
  if sport_var == 'CS2' or sport_var == 'LOL':
 
1902
  'Avg Dupes': st.session_state['display_frame'][cpt_mask]['Dupes'].mean(),
1903
  'Avg Finish %': st.session_state['display_frame'][cpt_mask]['Finish_percentile'].mean(),
1904
  'Avg Lineup Edge': st.session_state['display_frame'][cpt_mask]['Lineup Edge'].mean(),
1905
+ 'Avg Diversity': st.session_state['display_frame'][cpt_mask]['Diversity'].mean(),
1906
  })
1907
 
1908
  # Create mask for lineups where this player is FLEX (other columns)
 
1920
  'Avg Dupes': st.session_state['display_frame'][flex_mask]['Dupes'].mean(),
1921
  'Avg Finish %': st.session_state['display_frame'][flex_mask]['Finish_percentile'].mean(),
1922
  'Avg Lineup Edge': st.session_state['display_frame'][flex_mask]['Lineup Edge'].mean(),
1923
+ 'Avg Diversity': st.session_state['display_frame'][flex_mask]['Diversity'].mean(),
1924
  })
1925
  elif sport_var != 'CS2' and sport_var != 'LOL':
1926
  # Original Classic format processing
 
1939
  'Avg Dupes': st.session_state['display_frame'][player_mask]['Dupes'].mean(),
1940
  'Avg Finish %': st.session_state['display_frame'][player_mask]['Finish_percentile'].mean(),
1941
  'Avg Lineup Edge': st.session_state['display_frame'][player_mask]['Lineup Edge'].mean(),
1942
+ 'Avg Diversity': st.session_state['display_frame'][player_mask]['Diversity'].mean(),
1943
  })
1944
 
1945
  player_summary = pd.DataFrame(player_stats)
 
1958
  'Avg Dupes': '{:.2f}',
1959
  'Avg Finish %': '{:.2%}',
1960
  'Avg Lineup Edge': '{:.2%}',
1961
+ 'Exposure': '{:.2%}',
1962
+ 'Avg Diversity': '{:.2%}'
1963
  }),
1964
  height=400,
1965
  use_container_width=True
 
1986
  'Avg Dupes': st.session_state['display_frame'][stack_mask]['Dupes'].mean(),
1987
  'Avg Finish %': st.session_state['display_frame'][stack_mask]['Finish_percentile'].mean(),
1988
  'Avg Lineup Edge': st.session_state['display_frame'][stack_mask]['Lineup Edge'].mean(),
1989
+ 'Avg Diversity': st.session_state['display_frame'][stack_mask]['Diversity'].mean(),
1990
  })
1991
  stack_summary = pd.DataFrame(stack_stats)
1992
  stack_summary = stack_summary.sort_values('Lineup Count', ascending=False).drop_duplicates()
 
2004
  'Avg Dupes': '{:.2f}',
2005
  'Avg Finish %': '{:.2%}',
2006
  'Avg Lineup Edge': '{:.2%}',
2007
+ 'Exposure': '{:.2%}',
2008
+ 'Avg Diversity': '{:.2%}'
2009
  }),
2010
  height=400,
2011
  use_container_width=True
 
2043
  'Avg Dupes': '{:.2f}',
2044
  'Avg Finish %': '{:.2%}',
2045
  'Avg Lineup Edge': '{:.2%}',
2046
+ 'Exposure': '{:.2%}',
2047
+ 'Diversity': '{:.2%}'
2048
  }),
2049
  height=400,
2050
  use_container_width=True
global_func/analyze_player_combos.py CHANGED
@@ -75,8 +75,9 @@ def analyze_player_combos(display_frame, excluded_cols, combo_size=2):
75
  avg_dupes = display_frame.loc[combo_mask, 'Dupes'].mean()
76
  avg_finish = display_frame.loc[combo_mask, 'Finish_percentile'].mean()
77
  avg_edge = display_frame.loc[combo_mask, 'Lineup Edge'].mean()
 
78
  else:
79
- avg_median = avg_own = avg_dupes = avg_finish = avg_edge = 0
80
 
81
  combo_stats.append({
82
  'Combo': ' + '.join(combo),
@@ -86,7 +87,8 @@ def analyze_player_combos(display_frame, excluded_cols, combo_size=2):
86
  'Avg Own': avg_own,
87
  'Avg Dupes': avg_dupes,
88
  'Avg Finish %': avg_finish,
89
- 'Avg Lineup Edge': avg_edge
 
90
  })
91
 
92
  return pd.DataFrame(combo_stats)
 
75
  avg_dupes = display_frame.loc[combo_mask, 'Dupes'].mean()
76
  avg_finish = display_frame.loc[combo_mask, 'Finish_percentile'].mean()
77
  avg_edge = display_frame.loc[combo_mask, 'Lineup Edge'].mean()
78
+ avg_diversity = display_frame.loc[combo_mask, 'Diversity'].mean()
79
  else:
80
+ avg_median = avg_own = avg_dupes = avg_finish = avg_edge = avg_diversity = 0
81
 
82
  combo_stats.append({
83
  'Combo': ' + '.join(combo),
 
87
  'Avg Own': avg_own,
88
  'Avg Dupes': avg_dupes,
89
  'Avg Finish %': avg_finish,
90
+ 'Avg Lineup Edge': avg_edge,
91
+ 'Avg Diversity': avg_diversity
92
  })
93
 
94
  return pd.DataFrame(combo_stats)