MultiIndex.to_frame(index=True, name=None)[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.

New in version 0.24.0.

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.

DataFramea DataFrame containing the original MultiIndex data.

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