I have a table which looks like the one below:
A B C D
1 1 2 3
1 1 3 3
2 3 0 1
2 4 2 3
3 1 4 1
3 0 2 4
And I need to generate a table something like the one below:
A Metric Min Mean Max
1 B 1 1.0 1
C 2 2.5 3
D 3 3.0 3
2 B 3 3.5 4
C 0 1.0 2
D 1 2.0 3
3 B 0 0.5 1
C 2 3.0 4
D 1 2.5 4
So far I have come up with this.but doesn't look good. I'm sure there is a better way:
grouped = df.groupby(['A'])
for name, group in grouped:
dt = dict()
for str in ['max','mean','min']:
dt.update({str:group.agg(str)})
print(pd.DataFrame(data = dt))
print('----------')
max mean min
B 1 1.0 1
C 3 2.5 2
D 3 3.0 3
----------
max mean min
B 4 3.5 3
C 2 1.0 0
D 3 2.0 1
----------
max mean min
B 1 0.5 0
C 4 3.0 2
D 4 2.5 1
----------