pandas.MultiIndex.drop — pandas 3.0.0.dev0+2104.ge637b4290d documentation (original) (raw)

MultiIndex.drop(codes, level=None, errors='raise')[source]#

Make a new pandas.MultiIndex with the passed list of codes deleted.

This method allows for the removal of specified labels from a MultiIndex. The labels to be removed can be provided as a list of tuples if no level is specified, or as a list of labels from a specific level if the level parameter is provided. This can be useful for refining the structure of a MultiIndex to fit specific requirements.

Parameters:

codesarray-like

Must be a list of tuples when level is not specified.

levelint or level name, default None

Level from which the labels will be dropped.

errorsstr, default ‘raise’

If ‘ignore’, suppress error and existing labels are dropped.

Returns:

MultiIndex

A new MultiIndex with the specified labels removed.

Examples

idx = pd.MultiIndex.from_product( ... [(0, 1, 2), ("green", "purple")], names=["number", "color"] ... ) idx MultiIndex([(0, 'green'), (0, 'purple'), (1, 'green'), (1, 'purple'), (2, 'green'), (2, 'purple')], names=['number', 'color']) idx.drop([(1, "green"), (2, "purple")]) MultiIndex([(0, 'green'), (0, 'purple'), (1, 'purple'), (2, 'green')], names=['number', 'color'])

We can also drop from a specific level.

idx.drop("green", level="color") MultiIndex([(0, 'purple'), (1, 'purple'), (2, 'purple')], names=['number', 'color'])

idx.drop([1, 2], level=0) MultiIndex([(0, 'green'), (0, 'purple')], names=['number', 'color'])