@@ -15,17 +15,57 @@ class TestSeriesSorting(TestData, tm.TestCase):
15
15
16
16
_multiprocess_can_split_ = True
17
17
18
- def test_sort_values (self ):
18
+ def test_sort (self ):
19
19
20
20
ts = self .ts .copy ()
21
21
22
22
# 9816 deprecated
23
23
with tm .assert_produces_warning (FutureWarning ):
24
- ts .sort ()
25
-
24
+ ts .sort () # sorts inplace
26
25
self .assert_series_equal (ts , self .ts .sort_values ())
27
- self .assert_index_equal (ts .index , self .ts .sort_values ().index )
28
26
27
+ def test_order (self ):
28
+
29
+ # 9816 deprecated
30
+ with tm .assert_produces_warning (FutureWarning ):
31
+ result = self .ts .order ()
32
+ self .assert_series_equal (result , self .ts .sort_values ())
33
+
34
+ def test_sort_values (self ):
35
+
36
+ # check indexes are reordered corresponding with the values
37
+ ser = Series ([3 , 2 , 4 , 1 ], ['A' , 'B' , 'C' , 'D' ])
38
+ expected = Series ([1 , 2 , 3 , 4 ], ['D' , 'B' , 'A' , 'C' ])
39
+ result = ser .sort_values ()
40
+ self .assert_series_equal (expected , result )
41
+
42
+ ts = self .ts .copy ()
43
+ ts [:5 ] = np .NaN
44
+ vals = ts .values
45
+
46
+ result = ts .sort_values ()
47
+ self .assertTrue (np .isnan (result [- 5 :]).all ())
48
+ self .assert_numpy_array_equal (result [:- 5 ].values , np .sort (vals [5 :]))
49
+
50
+ # na_position
51
+ result = ts .sort_values (na_position = 'first' )
52
+ self .assertTrue (np .isnan (result [:5 ]).all ())
53
+ self .assert_numpy_array_equal (result [5 :].values , np .sort (vals [5 :]))
54
+
55
+ # something object-type
56
+ ser = Series (['A' , 'B' ], [1 , 2 ])
57
+ # no failure
58
+ ser .sort_values ()
59
+
60
+ # ascending=False
61
+ ordered = ts .sort_values (ascending = False )
62
+ expected = np .sort (ts .valid ().values )[::- 1 ]
63
+ assert_almost_equal (expected , ordered .valid ().values )
64
+ ordered = ts .sort_values (ascending = False , na_position = 'first' )
65
+ assert_almost_equal (expected , ordered .valid ().values )
66
+
67
+ # inplace=True
68
+ ts = self .ts .copy ()
29
69
ts .sort_values (ascending = False , inplace = True )
30
70
self .assert_series_equal (ts , self .ts .sort_values (ascending = False ))
31
71
self .assert_index_equal (ts .index ,
@@ -41,20 +81,6 @@ def f():
41
81
42
82
self .assertRaises (ValueError , f )
43
83
44
- # test order/sort inplace
45
- # GH6859
46
- ts1 = self .ts .copy ()
47
- ts1 .sort_values (ascending = False , inplace = True )
48
- ts2 = self .ts .copy ()
49
- ts2 .sort_values (ascending = False , inplace = True )
50
- assert_series_equal (ts1 , ts2 )
51
-
52
- ts1 = self .ts .copy ()
53
- ts1 = ts1 .sort_values (ascending = False , inplace = False )
54
- ts2 = self .ts .copy ()
55
- ts2 = ts .sort_values (ascending = False )
56
- assert_series_equal (ts1 , ts2 )
57
-
58
84
def test_sort_index (self ):
59
85
rindex = list (self .ts .index )
60
86
random .shuffle (rindex )
@@ -119,33 +145,3 @@ def test_sort_API(self):
119
145
120
146
self .assertRaises (ValueError ,
121
147
lambda : random_order .sort_index (level = 0 , axis = 1 ))
122
-
123
- def test_order (self ):
124
-
125
- # 9816 deprecated
126
- with tm .assert_produces_warning (FutureWarning ):
127
- self .ts .order ()
128
-
129
- ts = self .ts .copy ()
130
- ts [:5 ] = np .NaN
131
- vals = ts .values
132
-
133
- result = ts .sort_values ()
134
- self .assertTrue (np .isnan (result [- 5 :]).all ())
135
- self .assert_numpy_array_equal (result [:- 5 ].values , np .sort (vals [5 :]))
136
-
137
- result = ts .sort_values (na_position = 'first' )
138
- self .assertTrue (np .isnan (result [:5 ]).all ())
139
- self .assert_numpy_array_equal (result [5 :].values , np .sort (vals [5 :]))
140
-
141
- # something object-type
142
- ser = Series (['A' , 'B' ], [1 , 2 ])
143
- # no failure
144
- ser .sort_values ()
145
-
146
- # ascending=False
147
- ordered = ts .sort_values (ascending = False )
148
- expected = np .sort (ts .valid ().values )[::- 1 ]
149
- assert_almost_equal (expected , ordered .valid ().values )
150
- ordered = ts .sort_values (ascending = False , na_position = 'first' )
151
- assert_almost_equal (expected , ordered .valid ().values )
0 commit comments