Tom*_*asz 6 python multi-index dataframe pandas
我有一个带有多索引列的数据框:
|A |B
|1 |2 |1 |2
0|a b c d
Run Code Online (Sandbox Code Playgroud)
我想交换一级以获得:
|A |B
|2 |1 |2 |1
0|b |a |d |c
Run Code Online (Sandbox Code Playgroud)
但与
df.sort_index(axis=1, level=1)
Run Code Online (Sandbox Code Playgroud)
我得到:
|A|B|A|B
|1|1|2|2
0|a|c|b|d
Run Code Online (Sandbox Code Playgroud)
请帮忙
非常感谢
假设它们具有相同的标签,您可以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
Run Code Online (Sandbox Code Playgroud)
概括而言,您可以访问MultiIndex.levels
:
df.reindex(df.columns.levels[1][::-1], level=1, axis=1)
A B
2 1 2 1
0 b a d c
Run Code Online (Sandbox Code Playgroud)
如果所有第一级标签的第二级值不相同,请使用
df.loc[:, ::-1].reindex(df.columns.levels[0], level=0, axis=1)
A B
2 1 2 1
0 b a d c
Run Code Online (Sandbox Code Playgroud)