Skip to content

Commit 854b5f3

Browse files
committed
FIX: Ensure indexer is sort when needed.
1 parent a4a5034 commit 854b5f3

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
@@ -3008,11 +3008,12 @@ def _update_indexer(idxr, indexer=indexer):
30083008
# a collection of labels to include from this level (these
30093009
# are or'd)
30103010
indexers = None
3011-
# Find out if the list_like label are sorted as the levels or not
3012-
k_codes = np.array(
3013-
[self.levels[i].get_loc(e) for e in k if e in self.levels[i]]
3014-
)
3015-
need_sort = not (k_codes[:-1] < k_codes[1:]).all()
3011+
if not need_sort:
3012+
# Find out if the list_like label are sorted as the levels or not
3013+
k_codes = np.array(
3014+
[self.levels[i].get_loc(e) for e in k if e in self.levels[i]]
3015+
)
3016+
need_sort = not (k_codes[:-1] < k_codes[1:]).all()
30163017
for x in k:
30173018
try:
30183019
idxrs = _convert_to_indexer(
@@ -3044,7 +3045,7 @@ def _update_indexer(idxr, indexer=indexer):
30443045
elif com.is_null_slice(k):
30453046
# empty slice
30463047
# index is given to conserve the order of this level
3047-
indexer = _update_indexer(Int64Index(np.arange(n)), indexer=indexer)
3048+
indexer = _update_indexer(None, indexer=indexer)
30483049

30493050
elif isinstance(k, slice):
30503051

0 commit comments

Comments
 (0)