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

📅  最后修改于: 2023-12-03 14:46:22.867000             🧑  作者: Mango

Python| Pandas Series.argsort()

argsort() 方法是 Pandas Series 对象的一个方法,用于返回按升序排序的元素索引值。该方法返回的是一个由索引值组成的新的数组,而不是原始 Series 对象。

语法

Series.argsort(axis=0, kind=None, order=None)

参数说明:

  • axis:默认为 0,表示按行排序,1 表示按列排序;
  • kind:默认为 quicksort,表示使用快速排序算法,也可以使用 mergesortheapsort
  • order:指定排序方式,仅适用于有多个列的 DataFrame。
返回值

返回一个由升序排列的索引值组成的数组。

示例

下面是一个使用 argsort() 方法的示例代码:

import pandas as pd

# 构造一个 Pandas Series
s = pd.Series([3, 2, 4, 1])

# 执行 argsort() 方法
sort_index = s.argsort()

print(sort_index)

输出结果为:

0    3
1    1
2    0
3    2
dtype: int64

注意到输出结果是一个新的 Series,它的值是原始 Series 中所对应的索引值。根据元素值从小到大排序的索引值数组如下:

[3, 1, 0, 2]

这个数组与原始 Series 中的值数组 [3, 2, 4, 1] 对应,即通过排序得到的新的索引值数组,其元素值所对应的源数组中的元素值是递增的。

备注
  • argsort() 方法返回的数组是一个 NumPy 数组,而不是 Pandas Series 对象;
  • 如果需要将排序后的值返回到原始 Series 对象中,可以使用 iloc[] 方法,如 s.iloc[sort_index]
  • argsort() 方法的底层实现使用了快速排序算法。