📜  Python| Pandas Series.argsort()(1)

📅  最后修改于: 2023-12-03 15:04:21.903000             🧑  作者: Mango

Python | Pandas Series.argsort()

argsort() 是 Pandas 中的一个函数,它返回 Series 中元素排序后的索引值。

语法
Series.argsort(axis=0, kind='quicksort', order=None, na_last=True)
参数
  • axis:排序轴的方向,0 表示列,1 表示行,默认为 0。
  • kind:使用什么排序算法,可以为 quicksortmergesortheapsort。默认为 quicksort
  • order:按照某个列或行的值排序,默认为 None
  • na_last:缺失值放在排序结果的最后面,默认为 True
返回值

排序后的元素索引值。

示例
import pandas as pd

data = pd.Series([9, 5, 8, 4, 7], index=['d', 'a', 'c', 'b', 'e'])
sorted_index = data.argsort()
print(sorted_index)

输出:

a    3
b    1
c    2
d    4
e    0
dtype: int64

解释:data 中的数据为 [9, 5, 8, 4, 7],对应索引为 ['d', 'a', 'c', 'b', 'e']。使用 argsort() 函数进行排序,返回的是 [5, 1, 2, 4, 0],其中,1 在原 Series 中对应的索引是 'a',所以输出结果为 a 3

排序算法的选择:

  • quicksort 是经典算法,平均情况下的性能很好,最坏情况下的性能也比较稳定。但是在数组近乎有序的情况下速度会很慢,容易产生栈溢出;
  • mergesort 算法不会产生栈溢出的风险,但是要使用额外的内存;
  • heapsort 算法在所有情况下的性能表现都比较稳定,但是不支持“排序某一列或行”的功能,只能对整个 Series 进行排序。