Skip to content

Commit 980edae

Browse files
authored
add asvs for df.xs with MultiIndex (#46233)
1 parent f0f5412 commit 980edae

File tree

1 file changed

+21
-9
lines changed

1 file changed

+21
-9
lines changed

asv_bench/benchmarks/indexing.py

+21-9
Original file line numberDiff line numberDiff line change
@@ -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

267279
class IntervalIndexing:
268280
def setup_cache(self):

0 commit comments

Comments
 (0)