pandas.MultiIndex

class pandas.MultiIndex(levels=None, codes=None, sortorder=None, names=None, dtype=None, copy=False, name=None, verify_integrity=True)[source]

A multi-level, or hierarchical, index object for pandas objects.

Parameters
levels:sequence of arrays

The unique labels for each level.

codes:sequence of arrays

Integers for each level designating which label at each location.

sortorder:optional int

Level of sortedness (must be lexicographically sorted by that level).

names:optional sequence of objects

Names for each of the index levels. (name is accepted for compat).

copy:bool, default False

Copy the meta-data.

verify_integrity:bool, default True

Check that the levels/codes are consistent and valid.

See also

MultiIndex.from_arrays

Convert list of arrays to MultiIndex.

MultiIndex.from_product

Create a MultiIndex from the cartesian product of iterables.

MultiIndex.from_tuples

Convert list of tuples to a MultiIndex.

MultiIndex.from_frame

Make a MultiIndex from a DataFrame.

Index

The base pandas Index type.

Notes

See the user guide for more.

Examples

A new MultiIndex is typically constructed using one of the helper methods MultiIndex.from_arrays(), MultiIndex.from_product() and MultiIndex.from_tuples(). For example (using .from_arrays):

>>> arrays = [[1, 1, 2, 2], ['red', 'blue', 'red', 'blue']]
>>> pd.MultiIndex.from_arrays(arrays, names=('number', 'color'))
MultiIndex([(1,  'red'),
            (1, 'blue'),
            (2,  'red'),
            (2, 'blue')],
           names=['number', 'color'])

See further examples for how to construct a MultiIndex in the doc strings of the mentioned helper methods.

Attributes

names

Names of levels in MultiIndex.

nlevels

Integer number of levels in this MultiIndex.

levshape

A tuple with the length of each level.

levels

codes

Methods

from_arrays(arrays[, sortorder, names])

Convert arrays to MultiIndex.

from_tuples(tuples[, sortorder, names])

Convert list of tuples to MultiIndex.

from_product(iterables[, sortorder, names])

Make a MultiIndex from the cartesian product of multiple iterables.

from_frame(df[, sortorder, names])

Make a MultiIndex from a DataFrame.

set_levels(levels[, level, inplace, ...])

Set new levels on MultiIndex.

set_codes(codes[, level, inplace, ...])

Set new codes on MultiIndex.

to_frame([index, name])

Create a DataFrame with the levels of the MultiIndex as columns.

to_flat_index()

Convert a MultiIndex to an Index of Tuples containing the level values.

sortlevel([level, ascending, sort_remaining])

Sort MultiIndex at the requested level.

droplevel([level])

Return index with requested level(s) removed.

swaplevel([i, j])

Swap level i with level j.

reorder_levels(order)

Rearrange levels using input order.

remove_unused_levels()

Create new MultiIndex from current that removes unused levels.

get_locs(seq)

Get location for a sequence of labels.

© 2008–2021, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/1.3.4/reference/api/pandas.MultiIndex.html