簡體   English   中英

排序多索引數據框保持索引排序

[英]Sorting multi index data frame keeping index sorted

我有一個簡單的問題,我無法弄清楚。

基本上我想按列過濾多索引,但保持索引排序。

原裝 dataframe:

arrays = [['Falcon', 'Falcon', 'Parrot', 'Parrot'],
          ['Captive', 'Wild', 'Captive', 'Wild']]
index = pd.MultiIndex.from_arrays(arrays, names=('Animal', 'Type'))
df = pd.DataFrame({'Max Speed': [100, 150, 360, 20]}, index=index)

在此處輸入圖像描述

希望 output:

在此處輸入圖像描述

標准排序“打破”我想保留的第一級索引。

df.sort_values('Max Speed', ascending=False).sort_index(level=0)

在此處輸入圖像描述

嘗試:

首先通過reset_index()方法重置您的索引:

df=df.reset_index()

最后使用sort_values()方法和鏈set_index()方法:

df=(df.sort_values(['Animal','Type','Max Speed'], ascending=[False,True,False])
 .set_index(['Animal','Type']))

Output 的df

                    Max Speed
Animal  Type    
Parrot  Captive     360
        Wild        20
Falcon  Captive     100
        Wild        150

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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