python 排序、排名、合并、修改(字符串、列表、numpy、pandas)等

本文详细介绍了Python中字符串、列表、numpy和pandas的排序方法,包括sort、argsort、lexsort等,以及numpy数组和pandas DataFrame的合并与删除重复数据的操作。此外,还讲解了如何对数据进行排名,包括Series和DataFrame的rank方法。
摘要由CSDN通过智能技术生成

参考:https://blog.csdn.net/haiyang_duan/article/details/79221458
1、排序:
字符串和列表,都使用sort函数,默认都为升序,若想为降序,使用reverse=True
####不改变列表的结构和内容,产生一个新的列表
a=[1,2,5,4]
sorted(a)

####改变列表的结构和内容
a.sort()
______________________________________________numpy_______________________________________
numpy数组的排序:(sort、argsort、lexsort、numpy.searchsorted、numpy.partition、)
默认都为升序,若需要降序,加上ascending=True
####不改变原数组结构内容,生成一个新的数组
a=np.array([[1,3,2,4],[5,8,7,6]])
numpy.sort(a, axis=1, kind='quicksort', order=None)
a:所需排序的数组 
axis:数组排序时的基准,axis=0,按行排序;axis=1,按列排序
kind:数组排序时使用的方法,其中: 
kind=′quicksort′  为快排;kind=′mergesort′为混排;kind=′heapsort′为堆排; 
order:一个字符串或列表,可以设置按照某个属性进行排序

####改变数组的结构内容
a.sort(axis=0) 

####按照指定的列进行排序
#第三列进行排序,注意:argsort返回的只是排好序后的行索引,不会改变原数组
a=a[a[:,2].argsort()]

#####numpy.lexsort:
a:所需排序的数组 
axis:数组排序时的基准,axis=0,按行排列;axis=1,按列排列 
kind :数组排序时使用的方法,其中: 
   kind='quicksort'为快排;kind= ′ mergesort ′为混排;kind='heapsort'为堆排; 
order :一个字符串或列表,可以设置按照某个属性进行排序
>>> a=[1,5,1,4,3,4,4]
>>> b=[9,4,0,4,0,2,1]
>>> np.lexsort((b,a))
# b在前,a在后,即是先按照a的元素进行比较
# 如a中的最小值为两个1,其索引分别为0,2,再计较b中相应索引上的值,即9,0
# 对应的最小应是:1,0,而其对应的索引为2,所以排序后返回的结果第一个值为索引2
# 下一个最小应是:1,9,而其对应的索引为0,所以排序后返回的结果第一个值为索引0
# 以此类推...
array([2, 0, 4, 6, 5, 3, 1], dtype=int64)
>>> np.lexsort((a,b))
# a在前,b在后,即是先按照b的元素进行比较
# 如b中的最小值为两个0,其索引分别为0,4,再计较a中相应索引上的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值