@@ -21,7 +21,7 @@ class TestDataFrameSorting(tm.TestCase, TestData):
21
21
22
22
_multiprocess_can_split_ = True
23
23
24
- def test_sort_values (self ):
24
+ def test_sort_index (self ):
25
25
# API for 9816
26
26
27
27
# sort_index
@@ -34,63 +34,50 @@ def test_sort_values(self):
34
34
with tm .assert_produces_warning (FutureWarning ):
35
35
frame .sort ()
36
36
37
+ # axis=0 : sort rows by index labels
37
38
unordered = frame .ix [[3 , 2 , 4 , 1 ]]
38
- expected = unordered .sort_index ()
39
-
40
39
result = unordered .sort_index (axis = 0 )
40
+ expected = frame
41
41
assert_frame_equal (result , expected )
42
42
43
- unordered = frame .ix [:, [2 , 1 , 3 , 0 ]]
44
- expected = unordered .sort_index (axis = 1 )
43
+ result = unordered .sort_index (ascending = False )
44
+ expected = frame [::- 1 ]
45
+ assert_frame_equal (result , expected )
45
46
47
+ # axis=1 : sort columns by column names
48
+ unordered = frame .ix [:, [2 , 1 , 3 , 0 ]]
46
49
result = unordered .sort_index (axis = 1 )
47
- assert_frame_equal (result , expected )
50
+ assert_frame_equal (result , frame )
51
+
52
+ result = unordered .sort_index (axis = 1 , ascending = False )
53
+ expected = frame .ix [:, ::- 1 ]
48
54
assert_frame_equal (result , expected )
49
55
50
- # sortlevel
51
- mi = MultiIndex .from_tuples ([[1 , 1 , 3 ], [1 , 1 , 1 ]], names = list ('ABC' ))
56
+ # sort rows by specified level of multi-index
57
+ mi = MultiIndex .from_tuples ([[2 , 1 , 3 ], [1 , 1 , 1 ]], names = list ('ABC' ))
52
58
df = DataFrame ([[1 , 2 ], [3 , 4 ]], mi )
53
59
54
60
result = df .sort_index (level = 'A' , sort_remaining = False )
55
61
expected = df .sortlevel ('A' , sort_remaining = False )
56
62
assert_frame_equal (result , expected )
57
63
64
+ # sort columns by specified level of multi-index
58
65
df = df .T
59
66
result = df .sort_index (level = 'A' , axis = 1 , sort_remaining = False )
60
67
expected = df .sortlevel ('A' , axis = 1 , sort_remaining = False )
61
68
assert_frame_equal (result , expected )
62
69
63
- # MI sort, but no by
70
+ # MI sort, but no level
64
71
mi = MultiIndex .from_tuples ([[1 , 1 , 3 ], [1 , 1 , 1 ]], names = list ('ABC' ))
65
72
df = DataFrame ([[1 , 2 ], [3 , 4 ]], mi )
66
73
result = df .sort_index (sort_remaining = False )
67
74
expected = df .sort_index ()
68
75
assert_frame_equal (result , expected )
69
76
70
- def test_sort_index (self ):
77
+ def test_sort_values (self ):
71
78
frame = DataFrame (np .arange (16 ).reshape (4 , 4 ), index = [1 , 2 , 3 , 4 ],
72
79
columns = ['A' , 'B' , 'C' , 'D' ])
73
80
74
- # axis=0
75
- unordered = frame .ix [[3 , 2 , 4 , 1 ]]
76
- sorted_df = unordered .sort_index (axis = 0 )
77
- expected = frame
78
- assert_frame_equal (sorted_df , expected )
79
-
80
- sorted_df = unordered .sort_index (ascending = False )
81
- expected = frame [::- 1 ]
82
- assert_frame_equal (sorted_df , expected )
83
-
84
- # axis=1
85
- unordered = frame .ix [:, ['D' , 'B' , 'C' , 'A' ]]
86
- sorted_df = unordered .sort_index (axis = 1 )
87
- expected = frame
88
- assert_frame_equal (sorted_df , expected )
89
-
90
- sorted_df = unordered .sort_index (axis = 1 , ascending = False )
91
- expected = frame .ix [:, ::- 1 ]
92
- assert_frame_equal (sorted_df , expected )
93
-
94
81
# by column
95
82
sorted_df = frame .sort_values (by = 'A' )
96
83
indexer = frame ['A' ].argsort ().values
0 commit comments