Skip to content

Commit b069253

Browse files
committed
PERF: bench for pandas-dev#10287
1 parent 7d6fb51 commit b069253

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

vb_suite/indexing.py

+29
Original file line numberDiff line numberDiff line change
@@ -235,3 +235,32 @@
235235
series_ix_slice = Benchmark("s.ix[:800000]", setup)
236236
series_ix_list_like = Benchmark("s.ix[[800000]]", setup)
237237
series_ix_array = Benchmark("s.ix[np.arange(10000)]", setup)
238+
239+
240+
# multi-index slicing
241+
setup = common_setup + """
242+
idx=pd.IndexSlice
243+
n=100000
244+
mdt = pandas.DataFrame()
245+
mdt['A'] = np.random.choice(range(10000,45000,1000), n)
246+
mdt['B'] = np.random.choice(range(10,400), n)
247+
mdt['C'] = np.random.choice(range(1,150), n)
248+
mdt['D'] = np.random.choice(range(10000,45000), n)
249+
mdt['x'] = np.random.choice(range(400), n)
250+
mdt['y'] = np.random.choice(range(25), n)
251+
252+
253+
test_A = 25000
254+
test_B = 25
255+
test_C = 40
256+
test_D = 35000
257+
258+
eps_A = 5000
259+
eps_B = 5
260+
eps_C = 5
261+
eps_D = 5000
262+
mdt2 = mdt.set_index(['A','B','C','D']).sortlevel()
263+
"""
264+
265+
multiindex_slicers = Benchmark('mdt2.loc[idx[test_A-eps_A:test_A+eps_A,test_B-eps_B:test_B+eps_B,test_C-eps_C:test_C+eps_C,test_D-eps_D:test_D+eps_D],:]', setup,
266+
start_date=datetime(2015, 1, 1))

0 commit comments

Comments
 (0)