Skip to content

DOC: update Series.sort_values docstring #20247

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 16 commits into from
Mar 12, 2018
Merged
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 101 additions & 2 deletions pandas/core/series.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@
__all__ = ['Series']

_shared_doc_kwargs = dict(
axes='index', klass='Series', axes_single_arg="{0, 'index'}",
axes='index', klass='Series', axes_single_arg="{0 or 'index'}",
inplace="""inplace : boolean, default False
If True, performs operation inplace and returns None.""",
unique='np.ndarray', duplicated='Series',
Expand Down Expand Up @@ -1885,10 +1885,109 @@ def update(self, other):
# ----------------------------------------------------------------------
# Reindexing, sorting

@Appender(generic._shared_docs['sort_values'] % _shared_doc_kwargs)
def sort_values(self, axis=0, ascending=True, inplace=False,
kind='quicksort', na_position='last'):
"""
Sort by the Series values.

Sort (or order) a Series into ascending or descending order by some criterion.

Parameters
----------
axis : {0 or ‘index’}, default 0
Axis to direct sorting.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would mention here that is can only be 0 for Series (accepted for compatibility with DataFrame.sort_values)

ascending : bool, default True
If `True` sort values into ascending order, otherwise descending.
inplace : bool, default False
If True, perform operation in-place.
kind : {‘quicksort’, ‘mergesort’ or ‘heapsort’}, default ‘quicksort’
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it seems you are using here not the 'normal' single quote, but king of curved smart quote. Can you change this? (see the quotes in the type description of the na_position keyword, that are the good ones)

Choice of sorting algorithm. See also ndarray.np.sort [1]_ for more information. `mergesort` is the only stable
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you can use :func:`np.sort` as a syntax to create this reference automatically (then you don't need the [1]_

algorithm.
na_position : {'first' or 'last'}, default 'last'
Argument `first` puts NaNs at the beginning, `last` puts NaNs at the end.

Returns
-------
Series
Series ordered by values.

See Also
--------
Series.sort_index : Sort by the Series indices.
DataFrame.sort_index : Sort DataFrame by indices.
DataFrame.sort_values : Sort by the values along either axis.

References
----------
.. [1] https://docs.scipy.org/doc/numpy/reference/generated/numpy.sort.html

Examples
--------
>>> s = pd.Series([np.nan, 1, 232, 323, 1, 2, 3, 45])
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would make this a bit shorter (try to aim at 5 elements)

>>> s
0 NaN
1 1.0
2 232.0
3 323.0
4 1.0
5 2.0
6 3.0
7 45.0
dtype: float64

Sort values ascending order
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add something like (default behaviour) ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Quick grammar comment: Sort values in ascending order


>>> s.sort_values(ascending=True)
1 1.0
4 1.0
5 2.0
6 3.0
7 45.0
2 232.0
3 323.0
0 NaN
dtype: float64

Sort values descending order
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Quick grammar comment: Sort values in descending order


>>> s.sort_values(ascending=False)
3 323.0
2 232.0
7 45.0
6 3.0
5 2.0
4 1.0
1 1.0
0 NaN
dtype: float64

Sort values inplace

>>> s.sort_values(ascending=False, inplace=True)
>>> s
3 323.0
2 232.0
7 45.0
6 3.0
5 2.0
4 1.0
1 1.0
0 NaN
dtype: float64

Sort values putting NAs first

>>> s.sort_values(na_position='first')
0 NaN
4 1.0
1 1.0
5 2.0
6 3.0
7 45.0
2 232.0
3 323.0
dtype: float64
"""
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you find time, it would be nice to have an example that includes strings as well so that users see that sorting can apply to anything.

inplace = validate_bool_kwarg(inplace, 'inplace')
axis = self._get_axis_number(axis)

Expand Down