df_ordered_p_l = df.sort_values(['User', 'year', 'week', 'P/L', 'percentage'], ascending=[True, True,True, False, False]).groupby(['User', 'year', 'week']).agg(P_L_ordered = ('P/L',lambda x: list(x)), percentage_ordered = ('percentage', lambda x: list(x)) )