MultiIndex.to_frame(index=True, name=<no_default>, allow_duplicates=False)[source]#

Create a DataFrame with the levels of the MultiIndex as columns.

Column ordering is determined by the DataFrame constructor with data as a dict.

indexbool, default True

Set the index of the returned DataFrame as the original MultiIndex.

namelist / sequence of str, optional

The passed names should substitute index level names.

allow_duplicatesbool, optional default False

Allow duplicate column labels to be created.

Added in version 1.5.0.


See also


Two-dimensional, size-mutable, potentially heterogeneous tabular data.


>>> mi = pd.MultiIndex.from_arrays([["a", "b"], ["c", "d"]])
>>> mi
MultiIndex([('a', 'c'),
            ('b', 'd')],
>>> df = mi.to_frame()
>>> df
     0  1
a c  a  c
b d  b  d
>>> df = mi.to_frame(index=False)
>>> df
   0  1
0  a  c
1  b  d
>>> df = mi.to_frame(name=["x", "y"])
>>> df
     x  y
a c  a  c
b d  b  d