Spaces:
Sleeping
Sleeping
Jon Solow
commited on
Commit
·
8cbbcd9
1
Parent(s):
ad48790
Add snap counts page from nflverse
Browse files
src/pages/7_Snap_Counts.py
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import datetime
|
2 |
+
import streamlit as st
|
3 |
+
|
4 |
+
from config import DEFAULT_ICON
|
5 |
+
from shared_page import common_page_config
|
6 |
+
|
7 |
+
from queries.footballguys.constants import YEAR
|
8 |
+
from queries.nflverse.github_data import get_snap_counts
|
9 |
+
from streamlit_filter import filter_dataframe
|
10 |
+
|
11 |
+
|
12 |
+
@st.cache_data(ttl=60 * 60 * 24)
|
13 |
+
def load_data():
|
14 |
+
data = get_snap_counts(YEAR)
|
15 |
+
data_load_time_str = datetime.datetime.utcnow().strftime("%m/%d/%Y %I:%M %p")
|
16 |
+
return data, data_load_time_str
|
17 |
+
|
18 |
+
|
19 |
+
def get_page():
|
20 |
+
page_title = f"Player Redzone Opportunities - {YEAR}"
|
21 |
+
st.set_page_config(page_title=page_title, page_icon=DEFAULT_ICON, layout="wide")
|
22 |
+
common_page_config()
|
23 |
+
st.title(page_title)
|
24 |
+
if st.button("Refresh Data"):
|
25 |
+
st.cache_data.clear()
|
26 |
+
data, data_load_time_str = load_data()
|
27 |
+
st.write(f"Data loaded as of: {data_load_time_str} UTC")
|
28 |
+
|
29 |
+
with st.container():
|
30 |
+
filtered_data = filter_dataframe(data)
|
31 |
+
st.dataframe(
|
32 |
+
filtered_data,
|
33 |
+
hide_index=True,
|
34 |
+
# height=35 * (len(filtered_data) + 1) + 12,
|
35 |
+
use_container_width=False,
|
36 |
+
column_config={},
|
37 |
+
)
|
38 |
+
|
39 |
+
|
40 |
+
if __name__ == "__main__":
|
41 |
+
get_page()
|
src/queries/nflverse/__init__.py
ADDED
File without changes
|
src/queries/nflverse/github_data.py
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import pandas as pd
|
2 |
+
|
3 |
+
|
4 |
+
def get_parquet_github(season_int: int, parquet_prefix: str):
|
5 |
+
location = f"https://github.com/nflverse/nflverse-data/releases/download/{parquet_prefix}_{season_int}.parquet"
|
6 |
+
df = pd.read_parquet(location)
|
7 |
+
return df
|
8 |
+
|
9 |
+
|
10 |
+
def get_snap_counts(season_int: int) -> pd.DataFrame:
|
11 |
+
return get_parquet_github(season_int, "snap_counts/snap_counts")
|
12 |
+
|
13 |
+
|
14 |
+
def get_play_by_play(season_int: int) -> pd.DataFrame:
|
15 |
+
return get_parquet_github(season_int, "pbp/play_by_play")
|
16 |
+
|
17 |
+
|
18 |
+
def get_player_stats(season_int: int) -> pd.DataFrame:
|
19 |
+
return get_parquet_github(season_int, "player_stats/player_stats")
|