Pandas的sort_values方法可以根据索引进行排序吗?

3

我知道sort_index()函数可以按照索引对df进行排序,但我想知道sort_values()函数是否也可以按索引进行排序(而不重置索引)?

3个回答

4
不,sort_values无法在不将索引转换为列的情况下按索引排序(可能需要使用reset_index)。按索引排序的典型方法是使用sort_index方法,如您所提到的。有关相关方法的文档链接如下。

1
这是不正确的,因为自Pandas 0.23以来,只要索引有名称,它就可以包含在要排序的列列表中。 - Bart Spoon

0
如上方的评论所述,您可以给索引命名并在sort_values中使用它:
> import pandas as pd
> df = pd.DataFrame([2,1,3], index=[2,1,3])   
> df.index.name='myindex'
> df.sort_values('myindex') 
myindex   
1        1
2        2
3        3


0
希望这可以帮到你,正如balast所提到的,你需要将索引转换为列:
df = df.rename_axis('MyIdx').sort_values(by = ['MyCol', 'MyIdx'], ascending = [False, True])

更多关于之前的回答的信息


等一下,但是你正在展示不需要将索引转换为列。你的方法只是给索引命名,你仍然在使用排序值,对吗? - Tartaglia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接