pandas.Series.sort_values#

Series.sort_values(*, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last', ignore_index=False, key=None)[源代码][源代码]#

按值排序。

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

参数:
{0 或 ‘index’}

未使用。参数需要与 DataFrame 兼容。

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

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

inplace布尔值, 默认为 False

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

种类{‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’}, 默认 ‘quicksort’

排序算法的选择。更多信息请参见 numpy.sort()。’mergesort’ 和 ‘stable’ 是仅有的稳定算法。

na_position{‘first’ 或 ‘last’},默认 ‘last’

参数 ‘first’ 将 NaN 放在开头,’last’ 将 NaN 放在末尾。

ignore_index布尔值, 默认为 False

如果为真,生成的轴将被标记为 0, 1, …, n - 1。

关键可调用,可选

如果不是 None,在排序之前将键函数应用于序列值。这与内置 sorted() 函数中的 key 参数类似,但显著的区别是这个 key 函数应该是 矢量化的。它应该期望一个 Series 并返回一个类似数组的对象。

返回:
系列或无

如果 inplace=True,则按值排序的序列或为 None。

参见

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

将 NAs 值排在前面进行排序

>>> 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

使用键函数进行排序。你的 key 函数将被传递 Series 的值,并应返回类似数组的结果。

>>> 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 ufuncs 在这里工作得很好。例如,我们可以按值的 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