Spaces:
Sleeping
Sleeping
import datetime | |
import streamlit as st | |
from config import DEFAULT_ICON | |
from shared_page import common_page_config | |
from queries.footballguys.constants import YEAR | |
from queries.nflverse.github_data import get_pbp_participation | |
def load_data(): | |
data = get_pbp_participation(YEAR) | |
# data = data[data.fantasy_position] | |
teams_list = sorted(filter(None, data.possession_team.unique())) | |
# position_list = data.position.unique() | |
# weeks_list = sorted(data.week.unique()) | |
data_load_time_str = datetime.datetime.utcnow().strftime("%m/%d/%Y %I:%M %p") | |
return data, teams_list, data_load_time_str | |
def get_page(): | |
page_title = f"Team Formations - {YEAR}" | |
st.set_page_config(page_title=page_title, page_icon=DEFAULT_ICON, layout="wide") | |
common_page_config() | |
st.title(page_title) | |
if st.button("Refresh Data"): | |
st.cache_data.clear() | |
data, teams_list, data_load_time_str = load_data() | |
st.write(f"Data loaded as of: {data_load_time_str} UTC") | |
default_groups = [ | |
"possession_team", | |
"offense_formation", | |
] | |
group_options = [ | |
"possession_team", | |
"offense_formation", | |
"offense_personnel", | |
"number_of_pass_rushers", | |
"defenders_in_box", | |
"defense_personnel", | |
] | |
group_by_selected = st.multiselect("Group by:", group_options) or default_groups | |
teams_selected = st.multiselect("Team:", teams_list, placeholder="Select a team to filter") or teams_list | |
with st.container(): | |
filtered_data = data[(data.possession_team.isin(teams_selected))] | |
grouped_data = filtered_data.groupby(group_by_selected).size() | |
st.dataframe( | |
grouped_data, | |
hide_index=False, | |
# height=35 * (len(filtered_data) + 1) + 12, | |
use_container_width=False, | |
# column_order=[ | |
# "season", | |
# "game_type", | |
# "week", | |
# "player", | |
# "position", | |
# "team", | |
# "opponent", | |
# "offense_snaps", | |
# "offense_pct", | |
# "defense_snaps", | |
# "defense_pct", | |
# "st_snaps", | |
# "st_pct", | |
# ], | |
column_config={ | |
"0": st.column_config.NumberColumn(label="Count"), | |
}, | |
) | |
if __name__ == "__main__": | |
get_page() | |