import os import streamlit as st import pandas as pd LEAGUE_NAME = "LOFG" DATA_URL = "../tests/mocks/2023_keepers.csv" @st.cache_data def load_data(): data = pd.read_csv(os.path.join(os.path.dirname(__file__), 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())) return data, teams_list def get_app(): st.title(f"{LEAGUE_NAME} Keeper Options") data_load_state = st.text("Loading data...") data, teams_list = load_data() data_load_state.text("Data loaded") raw_display_columns = [ "player_id", "name", "position", "team_name", "years_eligible", "keeper_cost", "eligible", ] 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) filtered_data = data.loc[teams_filter, raw_display_columns] st.write(filtered_data) if __name__ == "__main__": get_app()