
- Python Basic Tutorial
- Python - Home
- Python - Overview
- Python - Environment Setup
- Python - Basic Syntax
- Python - Comments
- Python - Variables
- Python - Data Types
- Python - Operators
- Python - Decision Making
- Python - Loops
- Python - Numbers
- Python - Strings
- Python - Lists
- Python - Tuples
- Python - Dictionary
- Python - Date & Time
- Python - Functions
- Python - Modules
- Python - Files I/O
- Python - Exceptions
Python Pandas - How to Sort MultiIndex at a specific level in descending order
To create a MultiIndex, use the from_arrays() method. However, to sort MultiIndex at a specific level, use the multiIndex.sortlevel() method in Pandas. Set the level as an argument. To sort in descending order, use the ascending parameter and set to False.
At first, import the required libraries −
import pandas as pd
MultiIndex is a multi-level, or hierarchical, index object for pandas objects. Create arrays −
arrays = [[2, 4, 3, 1], ['Peter', 'Chris', 'Andy', 'Jacob']]
The "names" parameter sets the names for each of the index levels. The from_arrays() is used to create a MultiIndex −
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))
Sort MultiIndex. The specific level to sort is set as a parameter i.e. level 1 here. We have sort in descending order using the "ascending" order with value "False" −
print("\nSort MultiIndex at the requested level in descending order...\n",multiIndex.sortlevel(1, ascending=False))
Example
Following is the code −
import pandas as pd # MultiIndex is a multi-level, or hierarchical, index object for pandas objects # Create arrays arrays = [[2, 4, 3, 1], ['Peter', 'Chris', 'Andy', 'Jacob']] # The "names" parameter sets the names for each of the index levels # The from_arrays() is used to create a MultiIndex multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student')) # display the MultiIndex print("The Multi-index...\n",multiIndex) # get the levels in MultiIndex print("\nThe levels in Multi-index...\n",multiIndex.levels) # Sort MultiIndex # The specific level to sort is set as a parameter i.e. level 1 here # We have sort in descending order using the "ascending" order with value "False" print("\nSort MultiIndex at the requested level in descending order...\n",multiIndex.sortlevel(1, ascending=False))
Output
This will produce the following output −
The Multi-index... MultiIndex([(2, 'Peter'), (4, 'Chris'), (3, 'Andy'), (1, 'Jacob')], names=['ranks', 'student']) The levels in Multi-index... [[1, 2, 3, 4], ['Andy', 'Chris', 'Jacob', 'Peter']] Sort MultiIndex at the requested level in descending order... (MultiIndex([(2, 'Peter'), (1, 'Jacob'), (4, 'Chris'), (3, 'Andy')], names=['ranks', 'student']), array([0, 3, 1, 2], dtype=int64))
- Related Articles
- Python Pandas - How to Sort MultiIndex at a specific level
- Python Pandas - Getting values from a specific level in Multiindex
- Python Pandas - How to Sort MultiIndex
- Python Pandas - Set only a single new specific level in a MultiIndex
- Python Pandas - Set only a single new specific level using the level name in a MultiIndex
- Python Pandas - Sort DataFrame in descending order according to the element frequency
- Python – Descending Order Sort grouped Pandas dataframe by group size?
- Python Pandas - Rearrange levels using level name in MultiIndex
- Python Pandas - Return MultiIndex with requested level removed
- How to perform descending order sort in MongoDB?
- Python - Drop specific rows from multiindex Pandas Dataframe
- Python Pandas - Return MultiIndex with requested level removed using the level name
- How to sort TreeSet in descending order in Java?
- Python Pandas - Return vector of label values for requested level in a MultiIndex
- How to sort an ArrayList in Java in descending order?

Advertisements