请问各位pandas中set_values对多列数据进行排序的问题

请问一下各位,这个地方我想对多列同时进行排序,写法按说没有任何问题,可是为什么最后的排序结果只针对by里面的第一个参数,后两列完全没按照我设好的False\True顺序排序呀。。
请问下是为什么,难道是我对sort_values()这个函数对多列进行排序存在误解。。

 frame = pd.DataFrame({'b':[4.,7,-3,2],'a':[0.,1,0,1],'c':[56,32,13.,2]})
frame = frame.sort_values(by = ['b','a','c'],ascending = [True,False,True])
frame

2个回答

如果问题得到解决,请点我回答左上角的采纳和向上的箭头,谢谢

图片说明

多列排序,是指前一列相同的时候。比较后一列,前一列不同,则不管后面,你注意看我的演示。

好比按年龄、姓名排序(假设都是升序)的意思是,27岁排在26岁后面,都是27岁,老李排在老张前面。但是如果老张25岁,哪怕张比李大,也是老张在前面。

gaotianyu824
Marval-C 谢谢您!! 实在感谢
一年多之前 回复

并不是每一列都执行排序,在第一列相同的时候才会去比较第二列.你这数据第一组已经排序了.如果按照你的意思的话,那这个datsframe的数据就被破坏了.

gaotianyu824
Marval-C 嗯嗯,谢谢您的解答!
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐