@@ -84,7 +84,7 @@ class ValueCounts:
8484
8585 def setup (self , dropna ):
8686 n = 5 * 10 ** 5
87- arr = ["s{:04d}" . format ( i ) for i in np .random .randint (0 , n // 10 , size = n )]
87+ arr = [f "s{ i :04d} " for i in np .random .randint (0 , n // 10 , size = n )]
8888 self .ts = pd .Series (arr ).astype ("category" )
8989
9090 def time_value_counts (self , dropna ):
@@ -102,7 +102,7 @@ def time_rendering(self):
102102class SetCategories :
103103 def setup (self ):
104104 n = 5 * 10 ** 5
105- arr = ["s{:04d}" . format ( i ) for i in np .random .randint (0 , n // 10 , size = n )]
105+ arr = [f "s{ i :04d} " for i in np .random .randint (0 , n // 10 , size = n )]
106106 self .ts = pd .Series (arr ).astype ("category" )
107107
108108 def time_set_categories (self ):
@@ -112,7 +112,7 @@ def time_set_categories(self):
112112class RemoveCategories :
113113 def setup (self ):
114114 n = 5 * 10 ** 5
115- arr = ["s{:04d}" . format ( i ) for i in np .random .randint (0 , n // 10 , size = n )]
115+ arr = [f "s{ i :04d} " for i in np .random .randint (0 , n // 10 , size = n )]
116116 self .ts = pd .Series (arr ).astype ("category" )
117117
118118 def time_remove_categories (self ):
@@ -164,9 +164,9 @@ def setup(self, dtype):
164164 np .random .seed (1234 )
165165 n = 5 * 10 ** 5
166166 sample_size = 100
167- arr = [ i for i in np .random .randint (0 , n // 10 , size = n )]
167+ arr = list ( np .random .randint (0 , n // 10 , size = n ))
168168 if dtype == "object" :
169- arr = ["s{:04d}" . format ( i ) for i in arr ]
169+ arr = [f "s{ i :04d} " for i in arr ]
170170 self .sample = np .random .choice (arr , sample_size )
171171 self .series = pd .Series (arr ).astype ("category" )
172172
@@ -225,7 +225,7 @@ def setup(self, index):
225225 elif index == "non_monotonic" :
226226 self .data = pd .Categorical .from_codes ([0 , 1 , 2 ] * N , categories = categories )
227227 else :
228- raise ValueError ("Invalid index param: {}" . format ( index ) )
228+ raise ValueError (f "Invalid index param: { index } " )
229229
230230 self .scalar = 10000
231231 self .list = list (range (10000 ))
@@ -282,4 +282,18 @@ def time_sort_values(self):
282282 self .index .sort_values (ascending = False )
283283
284284
285+ class SearchSorted :
286+ def setup (self ):
287+ N = 10 ** 5
288+ self .ci = tm .makeCategoricalIndex (N ).sort_values ()
289+ self .c = self .ci .values
290+ self .key = self .ci .categories [1 ]
291+
292+ def time_categorical_index_contains (self ):
293+ self .ci .searchsorted (self .key )
294+
295+ def time_categorical_contains (self ):
296+ self .c .searchsorted (self .key )
297+
298+
285299from .pandas_vb_common import setup # noqa: F401 isort:skip
0 commit comments