Skip to content

DOC: update the Series.reset_index DocString #20107

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
Mar 15, 2018
127 changes: 92 additions & 35 deletions pandas/core/series.py
Original file line number Diff line number Diff line change
Expand Up @@ -1002,55 +1002,112 @@ def _set_value(self, label, value, takeable=False):

def reset_index(self, level=None, drop=False, name=None, inplace=False):
"""
Analogous to the :meth:`pandas.DataFrame.reset_index` function, see
docstring there.
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 None
Only remove the given levels from the index. Removes all levels by
default
drop : boolean, default False
Do not try to insert index into dataframe columns
name : object, default None
The name of the column corresponding to the Series values
inplace : boolean, default False
Modify the Series in place (do not create a new object)
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
----------
resetted : DataFrame, or Series if drop == True
-------
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], index=pd.Index(['a', 'b', 'c', 'd'],
... name = 'idx'))

>>> 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 0
0 a 1
1 b 2
2 c 3
3 d 4

>>> arrays = [np.array(['bar', 'bar', 'baz', 'baz', 'foo',
... 'foo', 'qux', 'qux']),
... np.array(['one', 'two', 'one', 'two', 'one', 'two',
... 'one', 'two'])]
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(8),
... 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 0
a foo
b
one bar 0
two bar 1
one baz 2
two baz 3
one foo 4
two foo 5
one qux 6
two qux 7
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
"""
inplace = validate_bool_kwarg(inplace, 'inplace')
if drop:
Expand Down