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