pandas.Series.sort_values #

系列。sort_values ( * , axis = 0 , ascending = True , inplace = False , kind = 'quicksort' , na_position = 'last' , ignore_index = False , key = None ) [来源] #

按值排序。

按某种标准按升序或降序对系列进行排序。

参数
{0 或“索引”}

没用过。与 DataFrame 兼容所需的参数。

升序布尔值或布尔值列表,默认 True

如果为 True,则按升序对值排序,否则按降序排序。

inplace布尔值,默认 False

如果为 True,则就地执行操作。

kind {'quicksort', 'mergesort', 'heapsort', 'stable'}, 默认 'quicksort'

排序算法的选择。另请参阅numpy.sort()了解更多信息。 “mergesort”和“stable”是唯一稳定的算法。

na_position {'first' 或 'last'}, 默认 'last'

参数“first”将 NaN 放在开头,“last”将 NaN 放在末尾。

ignore_index bool,默认 False

如果为 True,则生成的轴将标记为 0、1、...、n - 1。

可调用,可选

如果不是“无”,则在排序之前将键函数应用于系列值。这与内置函数中的key参数类似sorted(),显着的区别是该key函数应该被向量化。它应该期望 a Series并返回一个类似数组的值。

返回
系列或无

系列按值排序,如果 则为“无” inplace=True

也可以看看

Series.sort_index

按系列索引排序。

DataFrame.sort_values

按任一轴上的值对 DataFrame 进行排序。

DataFrame.sort_index

按索引对 DataFrame 进行排序。

例子

>>> s = pd.Series([np.nan, 1, 3, 10, 5])
>>> s
0     NaN
1     1.0
2     3.0
3     10.0
4     5.0
dtype: float64

按升序对值进行排序(默认行为)

>>> s.sort_values(ascending=True)
1     1.0
2     3.0
4     5.0
3    10.0
0     NaN
dtype: float64

对值进行降序排序

>>> s.sort_values(ascending=False)
3    10.0
4     5.0
2     3.0
1     1.0
0     NaN
dtype: float64

对值进行排序,将 NA 放在第一位

>>> s.sort_values(na_position='first')
0     NaN
1     1.0
2     3.0
4     5.0
3    10.0
dtype: float64

对一系列字符串进行排序

>>> s = pd.Series(['z', 'b', 'd', 'a', 'c'])
>>> s
0    z
1    b
2    d
3    a
4    c
dtype: object
>>> s.sort_values()
3    a
1    b
4    c
2    d
0    z
dtype: object

使用按键功能排序。您的关键函数将被赋予Seriesof 值,并且应该返回一个类似数组的值。

>>> s = pd.Series(['a', 'B', 'c', 'D', 'e'])
>>> s.sort_values()
1    B
3    D
0    a
2    c
4    e
dtype: object
>>> s.sort_values(key=lambda x: x.str.lower())
0    a
1    B
2    c
3    D
4    e
dtype: object

NumPy ufunc 在这里运行良好。例如,我们可以按sin值的大小排序

>>> s = pd.Series([-4, -2, 0, 2, 4])
>>> s.sort_values(key=np.sin)
1   -2
4    4
2    0
0   -4
3    2
dtype: int64

可以使用更复杂的用户定义函数,只要它们期望一个 Series 并返回一个类似数组的函数

>>> s.sort_values(key=lambda x: (np.tan(x.cumsum())))
0   -4
3    2
4    4
1   -2
2    0
dtype: int64