Skip to content

Commit 1120f59

Browse files
committed
BUG: Improve error handling in Index class for level mismatch
1 parent 55eba13 commit 1120f59

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

pandas/core/indexes/base.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2088,9 +2088,14 @@ 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+
)
20912094
if lib.is_integer(level):
2092-
if isinstance(self.name, int) and self.name == level:
2095+
if lib.is_integer(self.name) and self.name == level:
20932096
return
2097+
if lib.is_integer(self.name):
2098+
raise KeyError(mismatch_error_msg)
20942099
if level < 0 and level != -1:
20952100
raise IndexError(
20962101
"Too many levels: Index has only 1 level, "
@@ -2101,9 +2106,6 @@ def _validate_index_level(self, level) -> None:
21012106
f"Too many levels: Index has only 1 level, not {level + 1}"
21022107
)
21032108
return
2104-
mismatch_error_msg = (
2105-
f"Requested level ({level}) does not match index name ({self.name})"
2106-
)
21072109
if isna(level) and isna(self.name):
21082110
if not is_matching_na(level, self.name):
21092111
raise KeyError(mismatch_error_msg)

0 commit comments

Comments
 (0)