@@ -204,11 +204,11 @@ class MultiIndexing:
204204 param_names = ["unique_levels" ]
205205
206206 def setup (self , unique_levels ):
207- self .ndim = 2
207+ self .nlevels = 2
208208 if unique_levels :
209- mi = MultiIndex .from_arrays ([range (1000000 )] * self .ndim )
209+ mi = MultiIndex .from_arrays ([range (1000000 )] * self .nlevels )
210210 else :
211- mi = MultiIndex .from_product ([range (1000 )] * self .ndim )
211+ mi = MultiIndex .from_product ([range (1000 )] * self .nlevels )
212212 self .df = DataFrame (np .random .randn (len (mi )), index = mi )
213213
214214 self .tgt_slice = slice (200 , 800 )
@@ -232,27 +232,27 @@ def time_loc_partial_key_list(self, unique_levels):
232232 def time_loc_partial_key_scalar (self , unique_levels ):
233233 self .df .loc [self .tgt_scalar , :]
234234
235- def time_loc_partial_bool_indexer (self , unique_levels ):
235+ def time_loc_partial_key_bool_indexer (self , unique_levels ):
236236 self .df .loc [self .tgt_bool_indexer , :]
237237
238238 def time_loc_all_slices (self , unique_levels ):
239- target = tuple ([self .tgt_slice ] * self .ndim )
239+ target = tuple ([self .tgt_slice ] * self .nlevels )
240240 self .df .loc [target , :]
241241
242242 def time_loc_all_null_slices (self , unique_levels ):
243- target = tuple ([self .tgt_null_slice ] * self .ndim )
243+ target = tuple ([self .tgt_null_slice ] * self .nlevels )
244244 self .df .loc [target , :]
245245
246246 def time_loc_all_lists (self , unique_levels ):
247- target = tuple ([self .tgt_list ] * self .ndim )
247+ target = tuple ([self .tgt_list ] * self .nlevels )
248248 self .df .loc [target , :]
249249
250250 def time_loc_all_scalars (self , unique_levels ):
251- target = tuple ([self .tgt_scalar ] * self .ndim )
251+ target = tuple ([self .tgt_scalar ] * self .nlevels )
252252 self .df .loc [target , :]
253253
254254 def time_loc_all_bool_indexers (self , unique_levels ):
255- target = tuple ([self .tgt_bool_indexer ] * self .ndim )
255+ target = tuple ([self .tgt_bool_indexer ] * self .nlevels )
256256 self .df .loc [target , :]
257257
258258 def time_loc_slice_plus_null_slice (self , unique_levels ):
@@ -263,6 +263,18 @@ def time_loc_null_slice_plus_slice(self, unique_levels):
263263 target = (self .tgt_null_slice , self .tgt_slice )
264264 self .df .loc [target , :]
265265
266+ def time_xs_level_0 (self , unique_levels ):
267+ target = self .tgt_scalar
268+ self .df .xs (target , level = 0 )
269+
270+ def time_xs_level_1 (self , unique_levels ):
271+ target = self .tgt_scalar
272+ self .df .xs (target , level = 1 )
273+
274+ def time_xs_full_key (self , unique_levels ):
275+ target = tuple ([self .tgt_scalar ] * self .nlevels )
276+ self .df .xs (target )
277+
266278
267279class IntervalIndexing :
268280 def setup_cache (self ):
0 commit comments