Skip to main content
`Ctrl`+`K`

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

  Sort Series by index labels.

  Returns a new Series sorted by label if inplace argument is `False`, otherwise updates the original series and returns None.

  Parameters:
    axis{0 or ‘index’}

      Unused. Parameter needed for compatibility with DataFrame.

    levelint, optional

      If not None, sort on values in specified index level(s).

    ascendingbool or list-like of bools, default True

      Sort ascending vs. descending. When the index is a MultiIndex the sort direction can be controlled for each level individually.

    inplacebool, default False

      If True, perform operation in-place.

    kind{‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’}, default ‘quicksort’

      Choice of sorting algorithm. See also `numpy.sort()` for more information. ‘mergesort’ and ‘stable’ are the only stable algorithms. For DataFrames, this option is only applied when sorting on a single column or label.

    na_position{‘first’, ‘last’}, default ‘last’

      If ‘first’ puts NaNs at the beginning, ‘last’ puts NaNs at the end. Not implemented for MultiIndex.

    sort_remainingbool, default True

      If True and sorting by level and index is multilevel, sort by other levels too (in order) after sorting by specified level.

    ignore_indexbool, default False

      If True, the resulting axis will be labeled 0, 1, …, n - 1.

    keycallable, optional

      If not None, apply the key function to the index values before sorting. This is similar to the key argument in the builtin `sorted()` function, with the notable difference that this key function should be vectorized. It should expect an `Index` and return an `Index` of the same shape.

  Returns:
    Series or None

      The original Series sorted by the labels or None if `inplace=True`.

  See also

  `DataFrame.sort_index`

    Sort DataFrame by the index.

  `DataFrame.sort_values`

    Sort DataFrame by the value.

  `Series.sort_values`

    Sort Series by the value.

  Examples

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

  Sort Descending

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

  By default NaNs are put at the end, but use na_position to place them at the beginning

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

  Specify index level to sort

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

  Does not sort by remaining levels when sorting by levels

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

  Apply a key function before sorting

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