Skip to main content
`Ctrl`+`K`

# pandas.MultiIndex.copy

MultiIndex.copy(names=None, deep=False, name=None)

  Make a copy of this object. Names, dtype, levels and codes can be passed and will be set on new copy.

  The copy method provides a mechanism to create a duplicate of an existing MultiIndex object. This is particularly useful in scenarios where modifications are required on an index, but the original MultiIndex should remain unchanged. By specifying the deep parameter, users can control whether the copy should be a deep or shallow copy, providing flexibility depending on the size and complexity of the MultiIndex.

  Parameters:
    names sequence, optional

      Names to set on the new MultiIndex object.

    deep bool, default False

      If False, the new object will be a shallow copy. If True, a deep copy will be attempted. Deep copying can be potentially expensive for large MultiIndex objects.

    name Label

      Kept for compatibility with 1-dimensional Index. Should not be used.

  Returns:
    MultiIndex

      A new MultiIndex object with the specified modifications.

  See also

  `MultiIndex.from_arrays`

    Convert arrays to MultiIndex.

  `MultiIndex.from_tuples`

    Convert list of tuples to MultiIndex.

  `MultiIndex.from_frame`

    Convert DataFrame to MultiIndex.

  Notes

  In most cases, there should be no functional difference from using `deep`, but if `deep` is passed it will attempt to deepcopy. This could be potentially expensive on large MultiIndex objects.

  Examples

      >>> mi = pd.MultiIndex.from_arrays([["a"], ["b"], ["c"]])
      >>> mi
      MultiIndex([('a', 'b', 'c')],
                 )
      >>> mi.copy()
      MultiIndex([('a', 'b', 'c')],
                 )