Make a MultiIndex from the cartesian product of multiple iterables.
Each iterable has unique labels for each level of the index.
Level of sortedness (must be lexicographically sorted by that level).
Names for the levels in the index. If not explicitly provided, names will be inferred from the elements of iterables if an element has a name attribute.
See also
MultiIndex.from_arraysConvert list of arrays to MultiIndex.
MultiIndex.from_tuplesConvert list of tuples to MultiIndex.
MultiIndex.from_frameMake a MultiIndex from a DataFrame.
Examples
>>> numbers = [0, 1, 2]
>>> colors = ['green', 'purple']
>>> pd.MultiIndex.from_product([numbers, colors],
... names=['number', 'color'])
MultiIndex([(0, 'green'),
(0, 'purple'),
(1, 'green'),
(1, 'purple'),
(2, 'green'),
(2, 'purple')],
names=['number', 'color'])
© 2008–2011, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
© 2011–2025, Open source contributors
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.3.0/reference/api/pandas.MultiIndex.from_product.html