# pandas.Series.reset_index

`Series.``reset_index`(level=None, drop=False, name=None, inplace=False)

  Generate a new DataFrame or Series with the index reset.

  This is useful when the index needs to be treated as a column, or when the index is meaningless and needs to be reset to the default before another operation.

  Parameters:

  level : int, str, tuple, or list, default optional

  > For a Series with a MultiIndex, only remove the specified levels from the index. Removes all levels by default.

  drop : bool, default False

  > Just reset the index, without inserting it as a column in the new DataFrame.

  name : object, optional

  > The name to use for the column containing the original Series values. Uses `self.name` by default. This argument is ignored when drop is True.

  inplace : bool, default False

  > Modify the Series in place (do not create a new object).

  Returns:

  Series or DataFrame

  > When drop is False (the default), a DataFrame is returned. The newly created columns will come first in the DataFrame, followed by the original Series values. When drop is True, a Series is returned. In either case, if `inplace=True`, no value is returned.

  See also

  `DataFrame.reset_index`
    Analogous function for DataFrame.

  Examples

      >>> s = pd.Series([1, 2, 3, 4], name='foo',
      ...               index=pd.Index(['a', 'b', 'c', 'd'], name='idx'))

  Generate a DataFrame with default index.

      >>> s.reset_index()
        idx  foo
      0   a    1
      1   b    2
      2   c    3
      3   d    4

  To specify the name of the new column use name.

      >>> s.reset_index(name='values')
        idx  values
      0   a       1
      1   b       2
      2   c       3
      3   d       4

  To generate a new Series with the default set drop to True.

      >>> s.reset_index(drop=True)
      0    1
      1    2
      2    3
      3    4
      Name: foo, dtype: int64

  To update the Series in place, without generating a new one set inplace to True. Note that it also requires `drop=True`.

      >>> s.reset_index(inplace=True, drop=True)
      >>> s
      0    1
      1    2
      2    3
      3    4
      Name: foo, dtype: int64

  The level parameter is interesting for Series with a multi-level index.

      >>> arrays = [np.array(['bar', 'bar', 'baz', 'baz']),
      ...           np.array(['one', 'two', 'one', 'two'])]
      >>> s2 = pd.Series(
      ...     range(4), name='foo',
      ...     index=pd.MultiIndex.from_arrays(arrays,
      ...                                     names=['a', 'b']))

  To remove a specific level from the Index, use level.

      >>> s2.reset_index(level='a')
             a  foo
      b
      one  bar    0
      two  bar    1
      one  baz    2
      two  baz    3

  If level is not set, all levels are removed from the Index.

      >>> s2.reset_index()
           a    b  foo
      0  bar  one    0
      1  bar  two    1
      2  baz  one    2
      3  baz  two    3

Scroll To Top