pandas.Series.reset_index#
- Series.reset_index(level=None, *, drop=False, name=<no_default>, inplace=False, allow_duplicates=False)[source]#
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:
- levelint, 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.
- dropbool, default False
Just reset the index, without inserting it as a column in the new DataFrame.
- nameobject, 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.- inplacebool, default False
Modify the Series in place (do not create a new object).
- allow_duplicatesbool, default False
Allow duplicate column labels to be created.
Added in version 1.5.0.
- Returns:
- Series or DataFrame or None
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
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