@@ -89,6 +89,22 @@ def test_sort_values(self):
89
89
with tm .assert_raises_regex (ValueError , msg ):
90
90
frame .sort_values (by = ['A' , 'B' ], axis = 0 , ascending = [True ] * 5 )
91
91
92
+ # GH 16836
93
+
94
+ d1 = [Timestamp (x ) for x in ['2016-01-01' , '2015-01-01' ,
95
+ np .nan , '2016-01-01' ]]
96
+ d2 = [Timestamp (x ) for x in ['2017-01-01' , '2014-01-01' ,
97
+ '2016-01-01' , '2015-01-01' ]]
98
+ df = pd .DataFrame ({'a' : d1 , 'b' : d2 }, index = [0 , 1 , 2 , 3 ])
99
+
100
+ d3 = [Timestamp (x ) for x in ['2015-01-01' , '2016-01-01' ,
101
+ '2016-01-01' , np .nan ]]
102
+ d4 = [Timestamp (x ) for x in ['2014-01-01' , '2015-01-01' ,
103
+ '2017-01-01' , '2016-01-01' ]]
104
+ expected = pd .DataFrame ({'a' : d3 , 'b' : d4 }, index = [1 , 3 , 0 , 2 ])
105
+ sorted_df = df .sort_values (by = ['a' , 'b' ], )
106
+ tm .assert_frame_equal (sorted_df , expected )
107
+
92
108
def test_sort_values_inplace (self ):
93
109
frame = DataFrame (np .random .randn (4 , 4 ), index = [1 , 2 , 3 , 4 ],
94
110
columns = ['A' , 'B' , 'C' , 'D' ])
@@ -269,6 +285,11 @@ def test_sort_datetimes(self):
269
285
df2 = df .sort_values (by = ['B' ])
270
286
assert_frame_equal (df1 , df2 )
271
287
288
+ df1 = df .sort_values (by = 'B' )
289
+
290
+ df2 = df .sort_values (by = ['C' , 'B' ])
291
+ assert_frame_equal (df1 , df2 )
292
+
272
293
def test_frame_column_inplace_sort_exception (self ):
273
294
s = self .frame ['A' ]
274
295
with tm .assert_raises_regex (ValueError , "This Series is a view" ):
@@ -321,7 +342,11 @@ def test_sort_nat_values_in_int_column(self):
321
342
assert_frame_equal (df_sorted , df_reversed )
322
343
323
344
df_sorted = df .sort_values (["datetime" , "float" ], na_position = "last" )
324
- assert_frame_equal (df_sorted , df_reversed )
345
+ assert_frame_equal (df_sorted , df )
346
+
347
+ # Ascending should not affect the results.
348
+ df_sorted = df .sort_values (["datetime" , "float" ], ascending = False )
349
+ assert_frame_equal (df_sorted , df )
325
350
326
351
327
352
class TestDataFrameSortIndexKinds (TestData ):
0 commit comments