import pandas as pd


def llegir_dades(nomf, a):
    df = pd.read_csv(nomf)
    return df[df['Any'] == a]


def nombre_centres(df):
    return len(df)


def telefon(df, codi):
    centre = df[df['Codi centre'] == codi].iloc[0]
    return tuple(centre[['Denominació completa', 'Adreça', 'Telèfon']])


def titularitat_1(df):
    np = len(df[df['Nom naturalesa'] == 'Públic'])
    nc = nombre_centres(df)
    return np / nc * 100

def titularitat_2(df):
    vc = df['Nom naturalesa'].value_counts()
    np = vc['Públic']
    nc = nombre_centres(df)
    return np / nc * 100

#
# Tria la solució que vulguis provar
#
# titularitat = titularitat_1
titularitat = titularitat_2


def distribucio_titularitat(df):
    gb1 = df.groupby(['Nom comarca'])
    s1 = gb1.apply(titularitat)
    return s1


def tipologia_centres(df):
    tips = ['EINF1C', 'EINF2C', 'EPRI', 'ESO', 'BATX', 'CFPM', 'CFPS']
    return dict(df[tips].count())


def busca_centre_ESO(df, codi_postal):
    c = df[(df['Nom naturalesa'] == 'Públic') & (df['Codi postal'] == codi_postal) & (pd.notnull(df['ESO']))]
    c = c.reset_index()
    return c[['Denominació completa', 'Adreça', 'Telèfon']]


def quants_FP(df, comarca):
    c = df[(df['Nom comarca'] == comarca) & (pd.notnull(df['CFPM']) | pd.notnull(df['CFPS']))]
    return len(c)


def noms_iguals(df):
    r1 = df.groupby(['Denominació completa']).size()
    return dict(r1[r1 > 1])
