关于排序

本文详细介绍了Python中列表排序的方法,包括列表内置的sort方法及其特点,sorted函数及其应用场景,并对比了两者之间的区别。此外还介绍了pandas库中DataFrame的sort_index和sort_values方法,通过实例展示了如何对数据进行有效排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

列表中的sort和sorted

  • sort是inplace排序,且sort是列表的一个函数
In [25]: a=[2,3,1]

In [26]: a.sort()

In [27]: a
Out[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]: b
Out[20]:
    0  1   2   3
0   2  1   2   3
1   6  5   6   7
2  10  9  10  11
In [23]: b.sort_values(axis=1,by=0,ascending=False)
Out[23]:
    3   0   2  1
0   3   2   2  1
1   7   6   6  5
2  11  10  10  9
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值