James McCool
commited on
Commit
·
d23b397
1
Parent(s):
9c68c67
adding diversity to analysis tables
Browse files- app.py +13 -3
- 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)
|