Skip to main content
`Ctrl`+`K`

# pandas.MultiIndex.sortlevel

MultiIndex.sortlevel(level=0, ascending=True, sort_remaining=True, na_position='first')

  Sort MultiIndex at the requested level.

  The result will respect the original ordering of the associated factor at that level.

  Parameters:
    level list-like, int or str, default 0

      If a string is given, must be a name of the level. If list-like must be names or ints of levels.

    ascending bool, default True

      False to sort in descending order. Can also be a list to specify a directed ordering.

    sort_remaining sort by the remaining levels after level
    na_position{‘first’ or ‘last’}, default ‘first’

      Argument ‘first’ puts NaNs at the beginning, ‘last’ puts NaNs at the end.

      Added in version 2.1.0.

  Returns:
    sorted_index pd.MultiIndex

      Resulting index.

    indexer np.ndarray[np.intp]

      Indices of output values in original index.

  Examples

      >>> mi = pd.MultiIndex.from_arrays([[0, 0], [2, 1]])
      >>> mi
      MultiIndex([(0, 2),
                  (0, 1)],
                 )

      >>> mi.sortlevel()
      (MultiIndex([(0, 1),
                  (0, 2)],
                 ), array([1, 0]))

      >>> mi.sortlevel(sort_remaining=False)
      (MultiIndex([(0, 2),
                  (0, 1)],
                 ), array([0, 1]))

      >>> mi.sortlevel(1)
      (MultiIndex([(0, 1),
                  (0, 2)],
                 ), array([1, 0]))

      >>> mi.sortlevel(1, ascending=False)
      (MultiIndex([(0, 2),
                  (0, 1)],
                 ), array([0, 1]))