pandas.MultiIndex — pandas 2.2.3 documentation (original) (raw)
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:
levelssequence of arrays
The unique labels for each level.
codessequence of arrays
Integers for each level designating which label at each location.
sortorderoptional int
Level of sortedness (must be lexicographically sorted by that level).
namesoptional sequence of objects
Names for each of the index levels. (name is accepted for compat).
copybool, default False
Copy the meta-data.
verify_integritybool, default True
Check that the levels/codes are consistent and valid.
Attributes
names | Names of levels in MultiIndex. |
---|---|
levels | Levels of the MultiIndex. |
nlevels | Integer number of levels in this MultiIndex. |
levshape | A tuple with the length of each level. |
dtypes | Return the dtypes as a Series for the underlying MultiIndex. |
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, verify_integrity]) | Set new levels on MultiIndex. |
set_codes(codes, *[, level, verify_integrity]) | Set new codes on MultiIndex. |
to_frame([index, name, allow_duplicates]) | 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 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_level_values(level) | Return vector of label values for requested level. |
get_indexer(target[, method, limit, tolerance]) | Compute indexer and mask for new index given the current index. |
get_loc(key) | Get location for a label or a tuple of labels. |
get_locs(seq) | Get location for a sequence of labels. |
get_loc_level(key[, level, drop_level]) | Get location and sliced index for requested label(s)/level(s). |
drop(codes[, level, errors]) | Make a new pandas.MultiIndex with the passed list of codes deleted. |
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.