Skip to content

Commit ff3a81f

Browse files
committed
Added KeyError Exception for MultiIndexes
1 parent 1cb75f9 commit ff3a81f

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

pandas/core/indexing.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -945,7 +945,7 @@ def _handle_lowerdim_multi_index_axis0(self, tup):
945945
# slices are unhashable
946946
pass
947947
except KeyError:
948-
return self._get_label(tup, axis=self.axis)
948+
return None
949949
except Exception as e1:
950950
if isinstance(tup[0], (slice, Index)):
951951
raise IndexingError("Handle elsewhere")
@@ -978,6 +978,10 @@ def _getitem_lowerdim(self, tup):
978978
return result
979979

980980
if len(tup) > self.obj.ndim:
981+
try:
982+
self._get_label(tup, axis=self.axis)
983+
except KeyError:
984+
return self._get_label(tup, axis=self.axis)
981985
raise IndexingError("Too many indexers. handle elsewhere")
982986

983987
# to avoid wasted computation

pandas/tests/indexing/multiindex/test_getitem.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ def test_series_getitem_returns_scalar(
8585
@pytest.mark.parametrize('indexer,expected_error,expected_error_msg', [
8686
(lambda s: s.__getitem__((2000, 3, 4)), KeyError, r"^356L?$"),
8787
(lambda s: s[(2000, 3, 4)], KeyError, r"^356L?$"),
88-
(lambda s: s.loc[(2000, 3, 4)], IndexingError, 'Too many indexers'),
88+
(lambda s: s.loc[(2000, 3, 4)], KeyError, r"^356L?$"),
8989
(lambda s: s.__getitem__(len(s)), IndexError, 'index out of bounds'),
9090
(lambda s: s[len(s)], IndexError, 'index out of bounds'),
9191
(lambda s: s.iloc[len(s)], IndexError,

0 commit comments

Comments
 (0)