[英]Pandas MultiIndex change order of one level ONLY
我有一個帶有multiindex列的數據框:
|A |B
|1 |2 |1 |2
0|a b c d
我想交換一級以獲得:
|A |B
|2 |1 |2 |1
0|b |a |d |c
但是隨着
df.sort_index(axis=1, level=1)
我得到:
|A|B|A|B
|1|1|2|2
0|a|c|b|d
請幫忙
非常感謝
假設它們具有相同的標簽,則可以將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
你有沒有嘗試過:
df.loc[:, pd.IndexSlice[:, [2, 1]]]
?
您仍然可以使用sort_index
df.sort_index(level=[0,1],ascending=[True,False],axis=1)
A B
2 1 2 1
0 b a d c
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.