@@ -440,12 +440,12 @@ def categories(self):
440
440
441
441
See Also
442
442
--------
443
- rename_categories
444
- reorder_categories
445
- add_categories
446
- remove_categories
447
- remove_unused_categories
448
- set_categories
443
+ rename_categories : Rename categories.
444
+ reorder_categories : Reorder categories as specified in new_categories.
445
+ add_categories : Add new categories.
446
+ remove_categories : Remove the specified categories.
447
+ remove_unused_categories : Remove categories which are not used.
448
+ set_categories : Sets the categories to the specified new_categories.
449
449
"""
450
450
return self .dtype .categories
451
451
@@ -874,11 +874,11 @@ def set_categories(self, new_categories, ordered=None, rename=False, inplace=Fal
874
874
875
875
See Also
876
876
--------
877
- rename_categories
878
- reorder_categories
879
- add_categories
880
- remove_categories
881
- remove_unused_categories
877
+ rename_categories : Rename categories.
878
+ reorder_categories : Reorder categories as specified in new_categories.
879
+ add_categories : Add new categories.
880
+ remove_categories : Remove the specified categories.
881
+ remove_unused_categories : Remove categories which are not used.
882
882
"""
883
883
inplace = validate_bool_kwarg (inplace , "inplace" )
884
884
if ordered is None :
@@ -943,11 +943,11 @@ def rename_categories(self, new_categories, inplace=False):
943
943
944
944
See Also
945
945
--------
946
- reorder_categories
947
- add_categories
948
- remove_categories
949
- remove_unused_categories
950
- set_categories
946
+ reorder_categories : Reorder categories as specified in new_categories.
947
+ add_categories : Add new categories.
948
+ remove_categories : Remove the specified categories.
949
+ remove_unused_categories : Remove categories which are not used.
950
+ set_categories : Sets the categories to the specified new_categories.
951
951
952
952
Examples
953
953
--------
@@ -1011,11 +1011,11 @@ def reorder_categories(self, new_categories, ordered=None, inplace=False):
1011
1011
1012
1012
See Also
1013
1013
--------
1014
- rename_categories
1015
- add_categories
1016
- remove_categories
1017
- remove_unused_categories
1018
- set_categories
1014
+ rename_categories : Rename categories.
1015
+ add_categories : Add new categories.
1016
+ remove_categories : Remove the specified categories.
1017
+ remove_unused_categories : Remove categories which are not used.
1018
+ set_categories : Sets the categories to the specified new_categories.
1019
1019
"""
1020
1020
inplace = validate_bool_kwarg (inplace , "inplace" )
1021
1021
if set (self .dtype .categories ) != set (new_categories ):
@@ -1051,11 +1051,11 @@ def add_categories(self, new_categories, inplace=False):
1051
1051
1052
1052
See Also
1053
1053
--------
1054
- rename_categories
1055
- reorder_categories
1056
- remove_categories
1057
- remove_unused_categories
1058
- set_categories
1054
+ rename_categories: Rename categories.
1055
+ reorder_categories : Reorder categories as specified in new_categories.
1056
+ remove_categories : Remove the specified categories.
1057
+ remove_unused_categories : Remove categories which are not used.
1058
+ set_categories : Sets the categories to the specified new_categories.
1059
1059
"""
1060
1060
inplace = validate_bool_kwarg (inplace , "inplace" )
1061
1061
if not is_list_like (new_categories ):
@@ -1102,11 +1102,11 @@ def remove_categories(self, removals, inplace=False):
1102
1102
1103
1103
See Also
1104
1104
--------
1105
- rename_categories
1106
- reorder_categories
1107
- add_categories
1108
- remove_unused_categories
1109
- set_categories
1105
+ rename_categories : Rename categories.
1106
+ reorder_categories : Reorder categories as specified in new_categories.
1107
+ add_categories : Add new categories.
1108
+ remove_unused_categories : Remove categories which are not used.
1109
+ set_categories : Sets the categories to the specified new_categories.
1110
1110
"""
1111
1111
inplace = validate_bool_kwarg (inplace , "inplace" )
1112
1112
if not is_list_like (removals ):
@@ -1145,11 +1145,11 @@ def remove_unused_categories(self, inplace=False):
1145
1145
1146
1146
See Also
1147
1147
--------
1148
- rename_categories
1149
- reorder_categories
1150
- add_categories
1151
- remove_categories
1152
- set_categories
1148
+ rename_categories : Rename categories.
1149
+ reorder_categories : Reorder categories as specified in new_categories.
1150
+ add_categories : Add new categories.
1151
+ remove_categories : Remove the specified categories.
1152
+ set_categories : Sets the categories to the specified new_categories.
1153
1153
"""
1154
1154
inplace = validate_bool_kwarg (inplace , "inplace" )
1155
1155
cat = self if inplace else self .copy ()
@@ -1399,14 +1399,14 @@ def memory_usage(self, deep=False):
1399
1399
@Substitution (klass = "Categorical" )
1400
1400
@Appender (_shared_docs ["searchsorted" ])
1401
1401
def searchsorted (self , value , side = "left" , sorter = None ):
1402
- # searchsorted is very performance sensitive. By converting codes
1403
- # to same dtype as self.codes, we get much faster performance.
1404
- if is_scalar ( value ):
1405
- codes = self . categories . get_loc ( value )
1406
- codes = self . codes . dtype . type ( codes )
1407
- else :
1408
- locs = [ self . categories . get_loc ( x ) for x in value ]
1409
- codes = np . array ( locs , dtype = self . codes . dtype )
1402
+ from pandas . core . series import Series
1403
+
1404
+ codes = _get_codes_for_values ( Series ( value ). values , self . categories )
1405
+ if - 1 in codes :
1406
+ raise KeyError ( "Value(s) to be inserted must be in categories." )
1407
+
1408
+ codes = codes [ 0 ] if is_scalar ( value ) else codes
1409
+
1410
1410
return self .codes .searchsorted (codes , side = side , sorter = sorter )
1411
1411
1412
1412
def isna (self ):
@@ -1576,7 +1576,7 @@ def argsort(self, ascending=True, kind="quicksort", *args, **kwargs):
1576
1576
1577
1577
See Also
1578
1578
--------
1579
- numpy.ndarray.argsort
1579
+ numpy.ndarray.argsort : Returns the indices that would sort this array.
1580
1580
1581
1581
Notes
1582
1582
-----
0 commit comments