是否可以根据列的值以及索引对pandas数据帧进行排序?
如果按列的值对pandas数据帧进行排序,则可以得到按列排序的结果数据帧,但不幸的是,在排序列的同一个值内,您会看到数据帧索引的顺序混乱。
所以,我可以按列(例如名为count
的列)对数据帧进行排序,但也可以按索引值对其进行排序吗?按降序对列进行排序是否可行,但按升序对索引进行排序是否可行?
我知道如何对dataframe中的多个列进行排序,也知道可以通过首先对索引进行reset_index()
排序,然后再次创建索引来实现我的要求。但这样做是否更直观、更有效呢?
Tags:
在pandas 0.23+中,您可以直接执行-请参阅OmerB的answer。如果您还没有0.23+,请继续阅读。
我敢说,最简单的方法就是将索引复制到列上,然后按两者排序。
我也希望能够做一些类似
df.sort(['count', 'index'])
的事情,但这当然行不通。熊猫0.23终于让你到了-D
现在可以将索引名(而不仅仅是列名)作为参数传递给
sort_values
。所以,这一行是有效的:如果索引当前未命名:
从pandas版本0.22开始。
可以临时将列设置为索引,对该列上的索引排序,然后重置。默认情况下,它将保持现有索引的顺序:
我认为以上可以通过“就地”选项来完成,但我认为如上所述更容易阅读。
相关问题 更多 >
编程相关推荐