@@ -204,11 +204,11 @@ class MultiIndexing:
204
204
param_names = ["unique_levels" ]
205
205
206
206
def setup (self , unique_levels ):
207
- self .ndim = 2
207
+ self .nlevels = 2
208
208
if unique_levels :
209
- mi = MultiIndex .from_arrays ([range (1000000 )] * self .ndim )
209
+ mi = MultiIndex .from_arrays ([range (1000000 )] * self .nlevels )
210
210
else :
211
- mi = MultiIndex .from_product ([range (1000 )] * self .ndim )
211
+ mi = MultiIndex .from_product ([range (1000 )] * self .nlevels )
212
212
self .df = DataFrame (np .random .randn (len (mi )), index = mi )
213
213
214
214
self .tgt_slice = slice (200 , 800 )
@@ -232,27 +232,27 @@ def time_loc_partial_key_list(self, unique_levels):
232
232
def time_loc_partial_key_scalar (self , unique_levels ):
233
233
self .df .loc [self .tgt_scalar , :]
234
234
235
- def time_loc_partial_bool_indexer (self , unique_levels ):
235
+ def time_loc_partial_key_bool_indexer (self , unique_levels ):
236
236
self .df .loc [self .tgt_bool_indexer , :]
237
237
238
238
def time_loc_all_slices (self , unique_levels ):
239
- target = tuple ([self .tgt_slice ] * self .ndim )
239
+ target = tuple ([self .tgt_slice ] * self .nlevels )
240
240
self .df .loc [target , :]
241
241
242
242
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 )
244
244
self .df .loc [target , :]
245
245
246
246
def time_loc_all_lists (self , unique_levels ):
247
- target = tuple ([self .tgt_list ] * self .ndim )
247
+ target = tuple ([self .tgt_list ] * self .nlevels )
248
248
self .df .loc [target , :]
249
249
250
250
def time_loc_all_scalars (self , unique_levels ):
251
- target = tuple ([self .tgt_scalar ] * self .ndim )
251
+ target = tuple ([self .tgt_scalar ] * self .nlevels )
252
252
self .df .loc [target , :]
253
253
254
254
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 )
256
256
self .df .loc [target , :]
257
257
258
258
def time_loc_slice_plus_null_slice (self , unique_levels ):
@@ -263,6 +263,18 @@ def time_loc_null_slice_plus_slice(self, unique_levels):
263
263
target = (self .tgt_null_slice , self .tgt_slice )
264
264
self .df .loc [target , :]
265
265
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
+
266
278
267
279
class IntervalIndexing :
268
280
def setup_cache (self ):
0 commit comments