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:
2092
2092
if isna (level ) and isna (self .name ):
2093
2093
return
2094
2094
2095
- elif isna (level ) or isna (self .name ):
2095
+ elif isna (level ) and not isna (self .name ):
2096
2096
raise KeyError (
2097
2097
f"Requested level ({ level } ) does not match index name ({ self .name } )"
2098
2098
)
2099
2099
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
+
2100
2118
elif lib .is_integer (level ):
2101
2119
if isinstance (self .name , int ) and level == self .name :
2102
2120
return
You can’t perform that action at this time.
0 commit comments