import pandas as pd

def nombre_receptes(df):
    return df['Nombre de receptes'].sum()

def dades_barcelona(df):
    df1 = df[df['Regió Sanitària Residència']=='BARCELONA']
    return df1[["6 trams d'edat", "Nombre de receptes"]]

def tipologia_sexe(df):
    lsexe = list(set(df['Sexe']))
    lsexe.sort()
    return lsexe

def percentatge_receptes_sexe(df, sexe):
    df1 = df[df['Sexe'] == sexe]
    return nombre_receptes(df1)/ nombre_receptes(df) * 100

def mitjana_per_edat(df):
    gb = df.groupby("6 trams d'edat")
    s1 = gb['Nombre de receptes'].mean().apply(lambda x: round(x, 2))
    return s1

def atc (df, codi):
    df1 = df[df['Codi grup ATC'] == codi]
    dfhomes = df1[df1['Sexe'] == 'Home']
    dfdones = df1[df1['Sexe'] == 'Dona']
    nt = nombre_receptes(df1)
    nh = nombre_receptes(dfhomes)
    nd = nombre_receptes(dfdones)
    return nt, nh, nd

def atc_max(df):
    gb = df.groupby('Codi grup ATC')
    df1 = gb['Nombre de receptes'].sum()
    return df1.idxmax()

def classifica_edat(edat):
    if edat <= 14:
        codi = '0 - 14 anys'
    elif 15<= edat <= 44:
        codi = '15 - 44 anys'
    elif 45<= edat <= 64:
        codi = '45 - 64 anys'
    elif 65<= edat <= 74:
        codi = '65 - 74 anys'
    elif 75<= edat <= 84:
        codi = '75 - 84 anys'
    else:
        codi = '85 anys o més'
    return codi
    
def atc_max_grup(df, sexe, edat):
    tedat = classifica_edat(edat)
    df1 = df[(df['Sexe'] == sexe) & (df["6 trams d'edat"] == tedat)]
    return atc_max(df1)
