Skip to content

Commit ce30ed0

Browse files
committed
Merge pull request #3630 from jseabold/series-sort-ascending
ENH: Add Series.sort ascending keyword
2 parents d177e79 + 2ebc13d commit ce30ed0

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

pandas/core/series.py

+10-3
Original file line numberDiff line numberDiff line change
@@ -2012,7 +2012,7 @@ def dot(self, other):
20122012
20132013
Parameters
20142014
----------
2015-
other : Series or DataFrame
2015+
other : Series or DataFrame
20162016
20172017
Returns
20182018
-------
@@ -2194,7 +2194,7 @@ def update(self, other):
21942194
#----------------------------------------------------------------------
21952195
# Reindexing, sorting
21962196

2197-
def sort(self, axis=0, kind='quicksort', order=None):
2197+
def sort(self, axis=0, kind='quicksort', order=None, ascending=True):
21982198
"""
21992199
Sort values and index labels by value, in place. For compatibility with
22002200
ndarray API. No return value
@@ -2206,8 +2206,15 @@ def sort(self, axis=0, kind='quicksort', order=None):
22062206
Choice of sorting algorithm. See np.sort for more
22072207
information. 'mergesort' is the only stable algorithm
22082208
order : ignored
2209+
ascending : boolean, default True
2210+
Sort ascending. Passing False sorts descending
2211+
2212+
See Also
2213+
--------
2214+
pandas.Series.order
22092215
"""
2210-
sortedSeries = self.order(na_last=True, kind=kind)
2216+
sortedSeries = self.order(na_last=True, kind=kind,
2217+
ascending=ascending)
22112218

22122219
true_base = self
22132220
while true_base.base is not None:

pandas/tests/test_series.py

+8-3
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,7 @@ def test_constructor_dtype_datetime64(self):
475475
np.datetime64(datetime(2013, 1, 2)),
476476
np.datetime64(datetime(2013, 1, 3)),
477477
]
478-
478+
479479
s = Series(dates)
480480
self.assert_(s.dtype == 'M8[ns]')
481481

@@ -1162,7 +1162,7 @@ def test_where(self):
11621162
s = Series(np.arange(10), dtype=dtype)
11631163
mask = s < 5
11641164
values = [2.5,3.5,4.5,5.5,6.5]
1165-
s[mask] = values
1165+
s[mask] = values
11661166
expected = Series(values + range(5,10), dtype='float64')
11671167
assert_series_equal(s, expected)
11681168
self.assertEquals(s.dtype, expected.dtype)
@@ -2591,7 +2591,7 @@ def test_dot(self):
25912591
expected = Series(np.dot(a.values, b.values),
25922592
index=['1', '2', '3'])
25932593
assert_series_equal(result, expected)
2594-
2594+
25952595
#Check index alignment
25962596
b2 = b.reindex(index=reversed(b.index))
25972597
result = a.dot(b)
@@ -2723,6 +2723,11 @@ def test_sort(self):
27232723
self.assert_(np.array_equal(ts, self.ts.order()))
27242724
self.assert_(np.array_equal(ts.index, self.ts.order().index))
27252725

2726+
ts.sort(ascending=False)
2727+
self.assert_(np.array_equal(ts, self.ts.order(ascending=False)))
2728+
self.assert_(np.array_equal(ts.index,
2729+
self.ts.order(ascending=False).index))
2730+
27262731
def test_sort_index(self):
27272732
import random
27282733

0 commit comments

Comments
 (0)