# pandas.MultiIndex

class `pandas.``MultiIndex`

  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.

  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.
  `is_lexsorted`() | Return True if the codes are lexicographically sorted
  `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 a new MultiIndex from the current that removes unused levels, meaning that they are not expressed in the labels.

Scroll To Top