File tree Expand file tree Collapse file tree 1 file changed +19
-1
lines changed Expand file tree Collapse file tree 1 file changed +19
-1
lines changed Original file line number Diff line number Diff line change @@ -2092,11 +2092,29 @@ def _validate_index_level(self, level) -> None:
20922092 if isna (level ) and isna (self .name ):
20932093 return
20942094
2095- elif isna (level ) or isna (self .name ):
2095+ elif isna (level ) and not isna (self .name ):
20962096 raise KeyError (
20972097 f"Requested level ({ level } ) does not match index name ({ self .name } )"
20982098 )
20992099
2100+ elif not isna (level ) and isna (self .name ):
2101+ # level is not NA, but self.name is NA
2102+ # This is valid for integer levels (0, -1) accessing unnamed index
2103+ if lib .is_integer (level ):
2104+ if level < 0 and level != - 1 :
2105+ raise IndexError (
2106+ f"Too many levels: Index has only 1 level, not { level + 1 } "
2107+ )
2108+ elif level > 0 :
2109+ raise IndexError (
2110+ f"Too many levels: Index has only 1 level, not { level + 1 } "
2111+ )
2112+ return
2113+ else :
2114+ raise KeyError (
2115+ f"Requested level ({ level } ) does not match index name ({ self .name } )"
2116+ )
2117+
21002118 elif lib .is_integer (level ):
21012119 if isinstance (self .name , int ) and level == self .name :
21022120 return
You can’t perform that action at this time.
0 commit comments