Использование:
new_df=( df.groupby('Grp').agg(Upper_A=('A','max'),Lower_A=('A','min'),
Upper_B=('B','max'),Lower_B=('B','min'),
Upper_C=('C','max'),Lower_C=('C','min'))
.reset_index() )
print(new_df)
Grp Upper_A Lower_A Upper_B Lower_B Upper_C Lower_C
0 Baby 5 5 10 2 20 8
1 Men 10 3 15 5 30 20
2 Women 15 10 10 6 25 3