pandas.MultiIndex.sortlevel — pandas 3.0.0.dev0+2103.g41968a550a documentation (original) (raw)
MultiIndex.sortlevel(level=0, ascending=True, sort_remaining=True, na_position='first')[source]#
Sort MultiIndex at the requested level.
This method is useful when dealing with MultiIndex objects, allowing for sorting at a specific level of the index. The function preserves the relative ordering of data within the same level while sorting the overall MultiIndex. The method provides flexibility with the ascendingparameter to define the sort order and with the sort_remaining parameter to control whether the remaining levels should also be sorted. Sorting a MultiIndex can be crucial when performing operations that require ordered indices, such as grouping or merging datasets. The na_position argument is important in handling missing values consistently across different levels.
Parameters:
levellist-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.
ascendingbool, default True
False to sort in descending order. Can also be a list to specify a directed ordering.
sort_remainingbool, default True
If True, sorts by the remaining levels after sorting by the specifiedlevel.
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_indexpd.MultiIndex
Resulting index.
indexernp.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]))