簡體   English   中英

熊貓MultiIndex更改順序僅一級

[英]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

請幫忙

非常感謝

假設它們具有相同的標簽,則可以將reindexlevel=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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM