def set_vax_age_gps(df):
    """
    create vaccinations data by (hospital admissions) age_groups
    :param df: DataFrame - expects cleaned vaccinations data
    :return: 2 DataFrames - rows are dates, columns are age_groups for dose 1 cumulative vaccinated
    and dose 2 cumulative vaccinated
    """
    # create separate first dose and second dose dataframes
    first_dose = df.drop('cumPeopleVaccinatedSecondDoseByVaccinationDate', axis=1)
    second_dose = df.drop('cumPeopleVaccinatedFirstDoseByVaccinationDate', axis=1)

    # helper function to create pivoted vax data by required age groups
    def group_vax(vax_df):
        # create first dose pivot by age
        vax_df = vax_df.groupby(by=['date', 'age']).sum().unstack()
        vax_df.columns = vax_df.columns.droplevel()

        starting_cols = vax_df.columns.values.tolist()

        # set age groups to 0-17, 18-64, 65-84 and 85+ (to match only available admissions split)
        vax_df['0-17 yrs'] = 0
        cols_1864 = ['18_24'] + [f'{5*i}_{5*(i+1) - 1}' for i in range(5,13)]
        cols_6584 = [f'{5*i}_{5*(i+1) - 1}' for i in range(13,17)]
        cols_85plus = ['85_89', '90+']
        vax_df['18-64 yrs'] = vax_df[cols_1864].sum(axis=1)
        vax_df['65-84 yrs'] = vax_df[cols_6584].sum(axis=1)
        vax_df['85+ yrs'] = vax_df[cols_85plus].sum(axis=1)

        # drop original cols
        vax_df.drop(starting_cols, axis=1, inplace=True)

        return vax_df

    # create first dose pivot by age
    first_dose = group_vax(first_dose)

    # create second dose pivot by age
    second_dose = group_vax(second_dose)

    return first_dose, second_dose