Skip to content

Commit c1adf30

Browse files
committed
FIX: Refactor error handling in Index class to ensure accurate level mismatch reporting
1 parent 1120f59 commit c1adf30

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

pandas/core/indexes/base.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2088,14 +2088,9 @@ def _validate_index_level(self, level) -> None:
20882088
verification must be done like in MultiIndex.
20892089
20902090
"""
2091-
mismatch_error_msg = (
2092-
f"Requested level ({level}) does not match index name ({self.name})"
2093-
)
20942091
if lib.is_integer(level):
20952092
if lib.is_integer(self.name) and self.name == level:
20962093
return
2097-
if lib.is_integer(self.name):
2098-
raise KeyError(mismatch_error_msg)
20992094
if level < 0 and level != -1:
21002095
raise IndexError(
21012096
"Too many levels: Index has only 1 level, "
@@ -2106,6 +2101,11 @@ def _validate_index_level(self, level) -> None:
21062101
f"Too many levels: Index has only 1 level, not {level + 1}"
21072102
)
21082103
return
2104+
mismatch_error_msg = (
2105+
f"Requested level ({level}) does not match index name ({self.name})"
2106+
)
2107+
if lib.is_integer(self.name):
2108+
raise KeyError(mismatch_error_msg)
21092109
if isna(level) and isna(self.name):
21102110
if not is_matching_na(level, self.name):
21112111
raise KeyError(mismatch_error_msg)

0 commit comments

Comments
 (0)