pandas.Series.reset_index
-
Series.reset_index(level=None, drop=False, name=None, inplace=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: 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 whendrop
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. Whendrop
is True, aSeries
is returned. In either case, ifinplace=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 requiresdrop=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
-
© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.23.4/generated/pandas.Series.reset_index.html