Q:

Python Pandas | Rearrange levels using level name in MultiIndex

belongs to collection: Python Pandas Programs

0

Rearrange levels using level name in MultiIndex

The pandas.MultiIndex.reorder_levels() method is used to rearrange levels using level name in MultiIndex.

Syntax:

MultiIndex.reorder_levels(order)

The method accepts list representing a new level order that can be either list of int or list of str and return the MultiIndex.

To work with MultiIndex in Python Pandas, we need to import the pandas library. Below is the syntax,

import pandas as pd

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

Python code to rearrange levels using level name in MultiIndex

# Import the pandas package
import pandas as pd

# Create arrays
employees = [
        ['E101', 'E102', 'E102', 'E103'],
        ['Alex', 'Alvin', 'Deniel', 'Jenny'],
        [21, 19, 15, 17]
    ]

# create a Multiindex using  from_arrays() 
mi = pd.MultiIndex.from_arrays(employees, names=('emp_id', 'name', 'age'))

# display the Multiindex
print("The MultiIndex...\n",mi)
print()

# Get the levels in MultiIndex
print("The levels in MultiIndex...\n",mi.levels)
print()

# Reorder levels 
print("Reorder levels (name, age, emp_id)...")
print(mi.reorder_levels(order=['name','age','emp_id']))
print()

# Reorder levels 
print("Reorder levels (emp_id, age, name)...")
print(mi.reorder_levels(order=['emp_id','age','name']))
print()

Output:

The MultiIndex...
 MultiIndex([('E101',   'Alex', 21),
            ('E102',  'Alvin', 19),
            ('E102', 'Deniel', 15),
            ('E103',  'Jenny', 17)],
           names=['emp_id', 'name', 'age'])

The levels in MultiIndex...
 [['E101', 'E102', 'E103'], ['Alex', 'Alvin', 'Deniel', 'Jenny'], [15, 17, 19, 21]]

Reorder levels (name, age, emp_id)...
MultiIndex([(  'Alex', 21, 'E101'),
            ( 'Alvin', 19, 'E102'),
            ('Deniel', 15, 'E102'),
            ( 'Jenny', 17, 'E103')],
           names=['name', 'age', 'emp_id'])

Reorder levels (emp_id, age, name)...
MultiIndex([('E101', 21,   'Alex'),
            ('E102', 19,  'Alvin'),
            ('E102', 15, 'Deniel'),
            ('E103', 17,  'Jenny')],
           names=['emp_id', 'age', 'name'])

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

Python Pandas Programs

This question belongs to these collections

Similar questions


need a help?


find thousands of online teachers now
Python Pandas | Return MultiIndex with multiple le... >>
<< Python Pandas | Swap levels of a MultiIndex...