Marval-C
2018-12-04 13:29
采纳率: 16.7%
浏览 2.9k
已采纳

请问各位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条回答 默认 最新

  • blownewbee 2018-12-04 13:42
    已采纳

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

    图片说明

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

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

    点赞 评论
  • 阿范1 2019-07-06 12:03

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

    点赞 评论

相关推荐 更多相似问题