@@ -944,7 +944,7 @@ def test_sort_index_multiindex_sort_remaining(self, ascending):
944944
945945 tm .assert_frame_equal (result , expected )
946946
947- def test_sort_multi_index_sort_by_level_name (self ):
947+ def test_sort_index_multiindex_by_level_name (self ):
948948 # GH#62361
949949
950950 df = DataFrame (
@@ -970,61 +970,68 @@ def test_sort_multi_index_sort_by_level_name_2(self):
970970 # GH#62361
971971
972972 df = DataFrame (
973- [[1 , 2 ], [ 3 , 4 ]],
973+ [[1 , 2 , 3 ], [ 4 , 5 , 6 ]],
974974 columns = MultiIndex .from_tuples (
975- [("alpha10 " , "top10 " ), ("alpha3 " , "top2 " )], names = ("A" , "B" )
975+ [("a10 " , "b12 " ), ("a2 " , "b17" ), ( "a2" , "b4 " )], names = ("A" , "B" )
976976 ),
977977 )
978978
979- expected = DataFrame (
980- [[2 , 1 ], [4 , 3 ]],
979+ expected_A = DataFrame (
980+ [[2 , 3 , 1 ], [5 , 6 , 4 ]],
981+ columns = MultiIndex .from_tuples (
982+ [("a2" , "b17" ), ("a2" , "b4" ), ("a10" , "b12" )], names = ("A" , "B" )
983+ ),
984+ )
985+ expected_B = DataFrame (
986+ [[3 , 1 , 2 ], [6 , 4 , 5 ]],
981987 columns = MultiIndex .from_tuples (
982- [("alpha3 " , "top2 " ), ("alpha10 " , "top10 " )], names = ("A" , "B" )
988+ [("a2 " , "b4 " ), ("a10 " , "b12" ), ( "a2" , "b17 " )], names = ("A" , "B" )
983989 ),
984990 )
985991
986992 sorted_df = df .sort_index (
987993 axis = 1 , level = 0 , key = lambda x : np .argsort (index_natsorted (x ))
988994 )
989- tm .assert_frame_equal (sorted_df , expected )
995+ tm .assert_frame_equal (sorted_df , expected_A )
990996
991997 sorted_df = df .sort_index (
992998 axis = 1 , level = "A" , key = lambda x : np .argsort (index_natsorted (x ))
993999 )
994- tm .assert_frame_equal (sorted_df , expected )
1000+ tm .assert_frame_equal (sorted_df , expected_A )
9951001
9961002 sorted_df = df .sort_index (
9971003 axis = 1 , level = 1 , key = lambda x : np .argsort (index_natsorted (x ))
9981004 )
999- tm .assert_frame_equal (sorted_df , expected )
1005+ tm .assert_frame_equal (sorted_df , expected_B )
10001006
10011007 sorted_df = df .sort_index (
10021008 axis = 1 , level = "B" , key = lambda x : np .argsort (index_natsorted (x ))
10031009 )
1004- tm .assert_frame_equal (sorted_df , expected )
1010+ tm .assert_frame_equal (sorted_df , expected_B )
10051011
1012+ # actually, only 1 element of list matters for sorting (2nd is ignored)
10061013 sorted_df = df .sort_index (
10071014 axis = 1 , level = [0 , 1 ], key = lambda x : np .argsort (index_natsorted (x ))
10081015 )
1009- tm .assert_frame_equal (sorted_df , expected )
1010-
1011- sorted_df = df .sort_index (
1012- axis = 1 , level = [1 , 0 ], key = lambda x : np .argsort (index_natsorted (x ))
1013- )
1014- tm .assert_frame_equal (sorted_df , expected )
1015-
1016- sorted_df = df .sort_index (
1017- axis = 1 , level = [1 , "A" ], key = lambda x : np .argsort (index_natsorted (x ))
1018- )
1019- tm .assert_frame_equal (sorted_df , expected )
1020-
1021- # repetition does not matter
1022- sorted_df = df .sort_index (
1023- axis = 1 ,
1024- level = ["A" , "B" , 0 , 1 , "B" ],
1025- key = lambda x : np .argsort (index_natsorted (x )),
1026- )
1027- tm .assert_frame_equal (sorted_df , expected )
1016+ tm .assert_frame_equal (sorted_df , expected_A )
1017+
1018+ # sorted_df = df.sort_index(
1019+ # axis=1, level=[1, 0], key=lambda x: np.argsort(index_natsorted(x))
1020+ # )
1021+ # tm.assert_frame_equal(sorted_df, expected_B )
1022+
1023+ # sorted_df = df.sort_index(
1024+ # axis=1, level=[1, "A"], key=lambda x: np.argsort(index_natsorted(x))
1025+ # )
1026+ # tm.assert_frame_equal(sorted_df, expected_B )
1027+
1028+ # # repetition does not matter
1029+ # sorted_df = df.sort_index(
1030+ # axis=1,
1031+ # level=["A", "B", 0, 1, "B"],
1032+ # key=lambda x: np.argsort(index_natsorted(x)),
1033+ # )
1034+ # tm.assert_frame_equal(sorted_df, expected_A )
10281035
10291036
10301037def test_sort_index_with_sliced_multiindex ():
0 commit comments