Python Pandas - Get the codes (location of each label) in MultiIndex


To get the codes (location of each label) in MultiIndex, use the MultiIndex.codes property in Pandas. 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 = [[1, 2, 3, 4, 5], ['John', 'Tim', 'Jacob', 'Chris', 'Keiron']]

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'))

Get the location of each label in Multiindex −

print("\nThe location of each label in Multi-index...\n",multiIndex.codes)

Example

Following is the code −

import pandas as pd

# MultiIndex is a multi-level, or hierarchical, index object for pandas objects
# Create arrays
arrays = [[1, 2, 3, 4, 5], ['John', 'Tim', 'Jacob', 'Chris', 'Keiron']]

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

# get the location of each label in Multiindex
print("\nThe location of each label in Multi-index...\n",multiIndex.codes)

Output

This will produce the following output −

The Multi-index...
MultiIndex([(1,   'John'),
            (2,    'Tim'),
            (3,  'Jacob'),
            (4,  'Chris'),
            (5, 'Keiron')],
            names=['ranks', 'student'])

The levels in Multi-index...
   [[1, 2, 3, 4, 5], ['Chris', 'Jacob', 'John', 'Keiron', 'Tim']]

The location of each label in Multi-index...
   [[0, 1, 2, 3, 4], [2, 4, 1, 0, 3]]

Updated on: 19-Oct-2021

214 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements