Spaces:
Sleeping
Sleeping
File size: 2,438 Bytes
86f5e84 7a18dc2 f18ed57 7a18dc2 2e0b4a6 949a661 7a18dc2 f47916d f18ed57 949a661 f47916d 2e0b4a6 7a18dc2 f47916d f18ed57 e2b52d0 7a18dc2 c0c7d17 949a661 c0c7d17 7a18dc2 5509410 c0c7d17 949a661 c9e9696 949a661 c9e9696 a544bb0 c9e9696 7a18dc2 f18ed57 93b83fd f18ed57 5509410 b7f4f75 f18ed57 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
import os
import pandas as pd
import streamlit as st
from config import DEFAULT_ICON, LEAGUE_NAME
from streamlit_filter import filter_dataframe
KEEPER_DATA_URL = "../../tests/mocks/2023_keepers.csv"
HEADSHOT_DATA_URL = "../../tests/mocks/2023_player_headshots.csv"
def load_player_ids() -> pd.DataFrame:
df = pd.read_csv(r"https://raw.githubusercontent.com/dynastyprocess/data/master/files/db_playerids.csv")
df["merge_id"] = df["yahoo_id"].combine_first(df["stats_id"])
return df
def load_adp() -> pd.DataFrame:
df = pd.read_csv(r"https://raw.githubusercontent.com/dynastyprocess/data/master/files/values-players.csv")
return df
@st.cache_data
def load_data():
data = pd.read_csv(os.path.join(os.path.dirname(__file__), KEEPER_DATA_URL), index_col=0)
# Hack to get position, replace with better position from yahoo api in future
data["position"] = data["eligible_positions"].apply(lambda x: eval(x)[0])
data.columns = data.columns.str.lower()
teams_list = sorted(list(data["team_name"].unique()))
# Merge player ids
df_player_ids = load_player_ids()
data = data.merge(df_player_ids, how="left", left_on="player_id", right_on="merge_id", suffixes=("", "_ids"))
# Merge ADP
df_adp = load_adp()
data = data.merge(df_adp, how="left", left_on="fantasypros_id", right_on="fp_id", suffixes=("", "_adp"))
return data, teams_list
def filtered_keeper_dataframe(data: pd.DataFrame, teams_list: list[str]):
teams_selected = st.multiselect("Team:", teams_list)
teams_filter = data["team_name"].isin(teams_selected) if teams_selected else data["team_name"].isin(teams_list)
show_columns = [
"team_name",
"name",
"team",
"position",
"keeper_cost",
"years_eligible",
"eligible",
"ecr_1qb",
"ecr_2qb",
"ecr_pos",
]
filtered_data = data.loc[teams_filter, show_columns]
st.dataframe(
filter_dataframe(filtered_data),
hide_index=True,
use_container_width=True,
column_config={},
)
def get_keeper_app():
keeper_title = f"{LEAGUE_NAME} Keeper Options"
st.set_page_config(page_title=keeper_title, page_icon=DEFAULT_ICON, layout="wide")
st.title(keeper_title)
data, teams_list = load_data()
with st.container():
filtered_keeper_dataframe(data, teams_list)
if __name__ == "__main__":
get_keeper_app()
|