Skip to content

Commit 194df70

Browse files
committed
PERF: Cache MultiIndex.levels
Closes pandas-dev#31648
1 parent 14cd612 commit 194df70

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

pandas/core/indexes/multi.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -677,8 +677,11 @@ def __len__(self) -> int:
677677
# --------------------------------------------------------------------
678678
# Levels Methods
679679

680-
@property
680+
@cache_readonly
681681
def levels(self):
682+
# Use cache_readonly to ensure that self.get_locs doesn't repeatedly
683+
# create new IndexEngine
684+
# https://github.com/pandas-dev/pandas/issues/31648
682685
result = [
683686
x._shallow_copy(name=name) for x, name in zip(self._levels, self._names)
684687
]

0 commit comments

Comments
 (0)