agg_df = df.groupby(['x', 'y', 'z']).agg({'amount': np.sum, 'id': lambda s:
    set(s)})
agg_df.reset_index().groupby(['x', 'y']).agg({'amount': np.sum, 'id': lambda
    s: set.union(*s)})
pandas объединяет массивы в groupby