Я считаю, что нужно max
по первому и второму уровням MultiIndex
:
df = df.max(level=[0,1], axis=1)
Альтернативное решение является совокупным max
:
df = df.groupby(level=[0,1], axis=1).max()
print (df)
Level1 Level2
Thing1 Thing2 Thing1
0 0.5030 1.4494 0.2134
1 0.4845 1.2636 0.2419
2 0.3414 1.2890 0.1295
3 0.3225 1.0368 0.1416
4 0.4230 1.7703 0.0294
5 0.3600 1.7819 0.0254
6 0.1781 3.2156 0.1084
7 0.1574 2.2911 0.0617
8 0.7510 3.1626 0.1420
9 0.6921 3.2830 0.0771