pandas.MultiIndex — pandas 0.25.3 documentation (original) (raw)

class pandas. MultiIndex[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. New in version 0.24.0. labels : sequence of arrays Integers for each level designating which label at each location. Deprecated since version 0.24.0: Use codes instead 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.

Notes

See the user guidefor 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(self, levels[, level, inplace, …]) Set new levels on MultiIndex.
set_codes(self, codes[, level, inplace, …]) Set new codes on MultiIndex.
to_frame(self[, index, name]) Create a DataFrame with the levels of the MultiIndex as columns.
to_flat_index(self) Convert a MultiIndex to an Index of Tuples containing the level values.
is_lexsorted(self) Return True if the codes are lexicographically sorted
sortlevel(self[, level, ascending, …]) Sort MultiIndex at the requested level.
droplevel(self[, level]) Return index with requested level(s) removed.
swaplevel(self[, i, j]) Swap level i with level j.
reorder_levels(self, order) Rearrange levels using input order.
remove_unused_levels(self) Create a new MultiIndex from the current that removes unused levels, meaning that they are not expressed in the labels.