Q:

Python Pandas | Return MultiIndex with multiple levels removed using the level names

belongs to collection: Python Pandas Programs

0

Return MultiIndex with multiple levels removed using the level names

The pandas.MultiIndex.droplevel() method is used to get the MultiIndex with multiple levels removed using the level names.

Syntax:

MultiIndex.droplevel(level=0)

The method accepts intstr, or list-like parameters. If the parameter is a string then it must be the name of a level, if list-like, elements must be names or indexes of levels. And, the method returns either MultiIndex or Index. If the resulting index has only 1 level left, the result will be of Index type, not 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 return MultiIndex with multiple levels removed using the level names

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

# Dropping one level
print("Dropping one level (age)...")
print(mi.droplevel(['age']))
print()

# Dropping two levels
print("Dropping two levels (emp_id, age)...")
print(mi.droplevel(['emp_id', 'age']))
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]]

Dropping one level (age)...
MultiIndex([('E101',   'Alex'),
            ('E102',  'Alvin'),
            ('E102', 'Deniel'),
            ('E103',  'Jenny')],
           names=['emp_id', 'name'])

Dropping two levels (emp_id, age)...
Index(['Alex', 'Alvin', 'Deniel', 'Jenny'], dtype='object', name='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 | Create a DataFrame with the levels... >>
<< Python Pandas | Rearrange levels using level name ...