Skip to content

Commit 2b5c4c5

Browse files
committed
FIX: Ensure indexer is sort when needed.
1 parent 6be7e1a commit 2b5c4c5

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

pandas/core/indexes/multi.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3060,11 +3060,12 @@ def _update_indexer(idxr, indexer=indexer):
30603060
# a collection of labels to include from this level (these
30613061
# are or'd)
30623062
indexers = None
3063-
# Find out if the list_like label are sorted as the levels or not
3064-
k_codes = np.array(
3065-
[self.levels[i].get_loc(e) for e in k if e in self.levels[i]]
3066-
)
3067-
need_sort = not (k_codes[:-1] < k_codes[1:]).all()
3063+
if not need_sort:
3064+
# Find out if the list_like label are sorted as the levels or not
3065+
k_codes = np.array(
3066+
[self.levels[i].get_loc(e) for e in k if e in self.levels[i]]
3067+
)
3068+
need_sort = not (k_codes[:-1] < k_codes[1:]).all()
30683069
for x in k:
30693070
try:
30703071
idxrs = _convert_to_indexer(
@@ -3096,7 +3097,7 @@ def _update_indexer(idxr, indexer=indexer):
30963097
elif com.is_null_slice(k):
30973098
# empty slice
30983099
# index is given to conserve the order of this level
3099-
indexer = _update_indexer(Int64Index(np.arange(n)), indexer=indexer)
3100+
indexer = _update_indexer(None, indexer=indexer)
31003101

31013102
elif isinstance(k, slice):
31023103

0 commit comments

Comments
 (0)