Skip to content
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
BUG/PERF: handle a slice correctly in get_level_indexer
  • Loading branch information
jreback committed Apr 3, 2017
commit dbd1322a225127fb6807332cb00b0144019ec6c0
20 changes: 7 additions & 13 deletions pandas/indexes/multi.py
Original file line number Diff line number Diff line change
Expand Up @@ -2069,20 +2069,14 @@ def convert_indexer(start, stop, step, indexer=indexer, labels=labels):
else:

loc = level_index.get_loc(key)
if level > 0 or self.lexsort_depth == 0:
if isinstance(loc, slice):
return loc
elif level > 0 or self.lexsort_depth == 0:
return np.array(labels == loc, dtype=bool)
else:
# sorted, so can return slice object -> view
try:
loc = labels.dtype.type(loc)
except TypeError:
# this occurs when loc is a slice (partial string indexing)
# but the TypeError raised by searchsorted in this case
# is catched in Index._has_valid_type()
pass
i = labels.searchsorted(loc, side='left')
j = labels.searchsorted(loc, side='right')
return slice(i, j)

i = labels.searchsorted(loc, side='left')
j = labels.searchsorted(loc, side='right')
return slice(i, j)

def get_locs(self, tup):
"""
Expand Down