Предполагая, что они имеют одинаковую метку, вы можете использовать reindex
с level=1
:
df
A B
1 2 1 2
0 a b c d
df.reindex([2, 1], level=1, axis=1)
A B
2 1 2 1
0 b a d c
Для обобщения вы можете получить доступ к MultiIndex.levels
:
df.reindex(df.columns.levels[1][::-1], level=1, axis=1)
A B
2 1 2 1
0 b a d c
Если значения второго уровня не одинаковы для всех меток первого уровня, используйте
df.loc[:, ::-1].reindex(df.columns.levels[0], level=0, axis=1)
A B
2 1 2 1
0 b a d c