@@ -807,3 +807,31 @@ def test_loc_with_non_string_categories(self, idx_values, ordered):
807
807
result .loc [sl , "A" ] = ["qux" , "qux2" ]
808
808
expected = DataFrame ({"A" : ["qux" , "qux2" , "baz" ]}, index = cat_idx )
809
809
tm .assert_frame_equal (result , expected )
810
+
811
+ @pytest .mark .parametrize (
812
+ "categories" ,
813
+ [
814
+ pytest .param (["a" , "b" , "c" ], id = "str" ),
815
+ pytest .param (
816
+ [pd .Interval (0 , 1 ), pd .Interval (1 , 2 ), pd .Interval (2 , 3 )],
817
+ id = "pd.Interval" ,
818
+ ),
819
+ ],
820
+ )
821
+ def test_reorder_index_with_categories (self , categories ):
822
+ # GH23452
823
+ df = DataFrame (
824
+ {"foo" : range (len (categories ))},
825
+ index = CategoricalIndex (
826
+ data = categories , categories = categories , ordered = True
827
+ ),
828
+ )
829
+ df .index = df .index .reorder_categories (df .index .categories [::- 1 ])
830
+ result = df .sort_index ()
831
+ expected = DataFrame (
832
+ {"foo" : reversed (range (len (categories )))},
833
+ index = CategoricalIndex (
834
+ data = categories [::- 1 ], categories = categories [::- 1 ], ordered = True
835
+ ),
836
+ )
837
+ tm .assert_frame_equal (result , expected )
0 commit comments