@@ -89,6 +89,18 @@ 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' , np .nan , '2016-01-01' ]]
95
+ d2 = [Timestamp (x ) for x in ['2017-01-01' , '2014-01-01' , '2016-01-01' , '2015-01-01' ]]
96
+ df = pd .DataFrame ({'a' : d1 , 'b' : d2 }, index = [0 , 1 , 2 , 3 ])
97
+
98
+ d3 = [Timestamp (x ) for x in ['2015-01-01' , '2016-01-01' , '2016-01-01' , np .nan ]]
99
+ d4 = [Timestamp (x ) for x in ['2014-01-01' , '2015-01-01' , '2017-01-01' , '2016-01-01' ]]
100
+ expected = pd .DataFrame ({'a' : d3 , 'b' : d4 }, index = [1 , 3 , 0 , 2 ])
101
+ sorted_df = df .sort_values (by = ['a' , 'b' ], )
102
+ tm .assert_frame_equal (sorted_df , expected )
103
+
92
104
def test_sort_values_inplace (self ):
93
105
frame = DataFrame (np .random .randn (4 , 4 ), index = [1 , 2 , 3 , 4 ],
94
106
columns = ['A' , 'B' , 'C' , 'D' ])
@@ -269,6 +281,11 @@ def test_sort_datetimes(self):
269
281
df2 = df .sort_values (by = ['B' ])
270
282
assert_frame_equal (df1 , df2 )
271
283
284
+ df1 = df .sort_values (by = 'B' )
285
+
286
+ df2 = df .sort_values (by = ['C' , 'B' ])
287
+ assert_frame_equal (df1 , df2 )
288
+
272
289
def test_frame_column_inplace_sort_exception (self ):
273
290
s = self .frame ['A' ]
274
291
with tm .assert_raises_regex (ValueError , "This Series is a view" ):
@@ -321,7 +338,11 @@ def test_sort_nat_values_in_int_column(self):
321
338
assert_frame_equal (df_sorted , df_reversed )
322
339
323
340
df_sorted = df .sort_values (["datetime" , "float" ], na_position = "last" )
324
- assert_frame_equal (df_sorted , df_reversed )
341
+ assert_frame_equal (df_sorted , df )
342
+
343
+ # Ascending should not affect the results.
344
+ df_sorted = df .sort_values (["datetime" , "float" ], ascending = False )
345
+ assert_frame_equal (df_sorted , df )
325
346
326
347
327
348
class TestDataFrameSortIndexKinds (TestData ):
0 commit comments