from typing import List import pandas as pd import streamlit as st def by_gender( df: pd.DataFrame, artist: str, territory: List[str], gender: List[str], possible_genders: List[str], ) -> None: """ Function to show filtered gender group basket data :param df: Dataframe containing data :param artist: used for filtering specific artist data :param territory: used for filtering specific territories :param gender: List of gender values to filter on :param possible_genders: List of all available values :return: None """ if not gender: gender = possible_genders gender_input = df[ (df["ARTIST"] == artist) & (df["TERRITORY"].isin(territory)) & (df["GENDER_C"].isin(gender)) ] st.dataframe( gender_input.groupby(["PRODUCT_NAME", "GENDER_C"])["TOTAL_PRODUCTS"] .sum() .reset_index() .pivot(index="PRODUCT_NAME", columns="GENDER_C", values="TOTAL_PRODUCTS") ) def by_age_group( df: pd.DataFrame, artist: str, territory: List[str], age_group: List[str], possible_ages: List[str], ) -> None: """ Function to show filtered age group basket data :param df: Dataframe containing data :param artist: used for filtering specific artist data :param territory: used for filtering specific territories :param age_group: List of age group values to filter on :param possible_ages: List of all available values :return: None """ if not age_group: age_group = possible_ages age_input = df[ (df["ARTIST"] == artist) & (df["TERRITORY"].isin(territory)) & (df["AGE_RANGE_C"].isin(age_group)) ] st.dataframe( age_input.groupby(["PRODUCT_NAME", "AGE_RANGE_C"])["TOTAL_PRODUCTS"] .sum() .reset_index() .pivot(index="PRODUCT_NAME", columns="AGE_RANGE_C", values="TOTAL_PRODUCTS") )