列表中的sort和sorted
sort是inplace排序,且sort是列表的一个函数
In [25]: a=[2,3,1]In [26]: a.sort()In [27]: aOut[27]: [1, 2, 3]
注意:列表调用sort方法后是没有返回值的。
如果在使用的时候,忘记这个,是非常崩溃的。
sorted是对所有可迭代对象排序
In [34]: students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10),]In [35]: sorted(students,key=lambda x:x[2])Out[35]: [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
其中key为函数,输入为可迭代对象中的元素,传出为索引为2的元素。于是,就是按照students中元素索引为2的对象排序。
pandas中的sort_index和sort_values
sort_index
DataFrame.sort_index(axis=1,ascending=False)
如函数名称所示,是按照索引来排序。
那么就需要知道哪个轴的索引排序,因而需要参数axis
其中axis=1表示对所有的columns进行排序,下面的数也跟着发生移动。后面的ascending=False表示按降序排列,参数默认为升序。
sort_values
DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')
显然,如函数名称所示,是按照值排序。既然需要按照值来排序,那么肯定需要知道哪个轴(参数axis),和轴中的哪一条数据(参数by)。
按照轴0或轴1,再根据元素值的大小排序。
In [20]: bOut[20]: 0 1 2 30 2 1 2 31 6 5 6 72 10 9 10 11In [23]: b.sort_values(axis=1,by=0,ascending=False)Out[23]: 3 0 2 10 3 2 2 11 7 6 6 52 11 10 10 9
领取专属 10元无门槛券
私享最新 技术干货