pandas.Series.sort_index#

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

按索引标签排序系列。

如果 inplace 参数为 False,则返回按标签排序的新 Series,否则更新原始系列并返回 None。

参数:
{0 或 ‘index’}

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

级别int, 可选

如果不是 None,则根据指定索引级别中的值进行排序。

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

升序排序与降序排序。当索引是 MultiIndex 时,可以分别控制每个级别的排序方向。

inplace布尔值, 默认为 False

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

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

排序算法的选择。更多信息请参见 numpy.sort() 。’mergesort’ 和 ‘stable’ 是仅有的稳定算法。对于 DataFrame,此选项仅在按单个列或标签排序时应用。

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

如果 ‘first’ 将 NaN 放在开头,’last’ 将 NaN 放在末尾。对于 MultiIndex 未实现。

sort_remainingbool, 默认为 True

如果为真并且按级别和索引进行多级排序,则在按指定级别排序后也按其他级别(按顺序)排序。

ignore_index布尔值, 默认为 False

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

关键可调用的,可选的

如果不是 None,在排序之前将键函数应用于索引值。这类似于内置 sorted() 函数中的 key 参数,但显著的区别是这个 key 函数应该是 矢量化的。它应该期望一个 Index 并返回一个相同形状的 Index

返回:
系列或无

如果 inplace=True,则按标签排序的原始序列或 None。

参见

DataFrame.sort_index

按索引排序 DataFrame。

DataFrame.sort_values

按值排序 DataFrame。

Series.sort_values

按值排序系列。

例子

>>> s = pd.Series(["a", "b", "c", "d"], index=[3, 2, 1, 4])
>>> s.sort_index()
1    c
2    b
3    a
4    d
dtype: object

降序排序

>>> s.sort_index(ascending=False)
4    d
3    a
2    b
1    c
dtype: object

默认情况下,NaN 值放在最后,但可以使用 na_position 将它们放在最前面

>>> s = pd.Series(["a", "b", "c", "d"], index=[3, 2, 1, np.nan])
>>> s.sort_index(na_position="first")
NaN     d
 1.0    c
 2.0    b
 3.0    a
dtype: object

指定索引级别进行排序

>>> arrays = [
...     np.array(["qux", "qux", "foo", "foo", "baz", "baz", "bar", "bar"]),
...     np.array(["two", "one", "two", "one", "two", "one", "two", "one"]),
... ]
>>> s = pd.Series([1, 2, 3, 4, 5, 6, 7, 8], index=arrays)
>>> s.sort_index(level=1)
bar  one    8
baz  one    6
foo  one    4
qux  one    2
bar  two    7
baz  two    5
foo  two    3
qux  two    1
dtype: int64

按级别排序时不按剩余级别排序

>>> s.sort_index(level=1, sort_remaining=False)
qux  one    2
foo  one    4
baz  one    6
bar  one    8
qux  two    1
foo  two    3
baz  two    5
bar  two    7
dtype: int64

在排序前应用一个键函数

>>> s = pd.Series([1, 2, 3, 4], index=["A", "b", "C", "d"])
>>> s.sort_index(key=lambda x: x.str.lower())
A    1
b    2
C    3
d    4
dtype: int64