def ejer51a(polls):
    """ Dado un dataframe calcula el número de personas según el nivel de preocupación (concern very, somewhat,...)
    y categoriza las entrevistas por aquellas realizadas estrictamente antes del 2020-09-01, o después

    :param polls: Un dataframe de entrevistas intersectado con su entrevistador
    :return: El dataframe de entrada con las columnas `n_very`, `n_somewhat`, `n_not_very`, `n_not_at_all` y `date_group`
    """
    def set_date_group(row):
        row["date_group"] = "Before 2020-09-01" if row["end_date"] < "2020-09-01" else "After 2020-09-01"
        return row

    df51a = polls.apply(set_date_group, axis=1)  # Generate date_group column

    df51a["n_very"] = df51a["very"] / 100 * df51a["sample_size"]
    df51a["n_somewhat"] = df51a["somewhat"] / 100 * df51a["sample_size"]
    df51a["n_not_very"] = df51a["not_very"] / 100 * df51a["sample_size"]
    df51a["n_not_at_all"] = df51a["not_at_all"] / 100 * df51a["sample_size"]
    return df51a