pandas.Series.sort_index #

系列。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,否则更新原始系列并返回 None。

参数
{0 或“索引”}

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

level整数,可选

如果不是“无”,则对指定索引级别中的值进行排序。

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

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

inplace布尔值,默认 False

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

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

排序算法的选择。另请参阅numpy.sort()了解更多信息。 “mergesort”和“stable”是唯一稳定的算法。对于 DataFrame,此选项仅在对单个列或标签进行排序时应用。

na_position {'第一个','最后一个'},默认'最后一个'

如果 'first' 将 NaN 放在开头,则 'last' 将 NaN 放在末尾。未实现多索引。

sort_remaining bool, 默认 True

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

ignore_index bool,默认 False

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

可调用,可选

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

返回
系列或无

原始系列按标签排序,如果 则为“无” inplace=True

也可以看看

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