import pandas as pd

def vacunes_1(df, provincia):
    df1 = df[(df['PROVINCIA'] == provincia)]
    vsi = df1[df1['VACC'] == 'Si']['COMP'].sum()
    vno = df1[df1['VACC'] == 'No']['COMP'].sum()
    return vsi, vno

def vacunes_2(df, nom_prov):
    b_prov = df['PROVINCIA'] == nom_prov
    df_1 = df.loc[b_prov, ['VACC', 'COMP']]
    gb_1 = df_1.groupby('VACC')
    df_2 = gb_1.sum()
    return df_2.loc['Si', 'COMP'], df_2.loc['No', 'COMP']

vacunes = vacunes_1
#vacunes = vacunes_2

def max_vacunes(df, d1, d2):
    df1 = df[(df['DATA']>=d1) & (df['DATA']<=d2) & (df['VACC'] == 'Si')]
    posicio = df1['COMP'].idxmax()
    tup = tuple(df1.loc[posicio, ['COMARCA', 'EDAT', 'DATA', 'MARCA', 'COMP']])
    return tup

def valors_possibles_1(df, nom_col):
    return sorted(set(df[nom_col]))

def valors_possibles_2(df, nom_columna):
    return sorted(df[nom_columna].unique())

valors_possibles =valors_possibles_1
#valors_possibles =valors_possibles_2

def df_edats_1(df):
    df_1 = df.groupby(['EDAT', 'MARCA'])['COMP'].sum().unstack(fill_value=0)
    df_1.index.name = None
    df_1.columns.name = None
    return df_1

def df_edats_2(df):
    dfe = pd.DataFrame(index = valors_possibles(df, 'EDAT'))
    lmarques = valors_possibles(df, 'MARCA')
    for marca in lmarques:
        df1 = df[df['MARCA'] == marca]
        dfe[marca] = df1.groupby('EDAT')['COMP'].sum()
        dfe[marca].fillna(0, inplace = True)
        dfe[marca] = dfe[marca].apply(int)
    return dfe


df_edats = df_edats_1
#df_edats = df_edats_2
