diff --git a/pandas/_libs/index.pyx b/pandas/_libs/index.pyx index 21680fb0b3921..5e92c506b5d0c 100644 --- a/pandas/_libs/index.pyx +++ b/pandas/_libs/index.pyx @@ -152,7 +152,7 @@ cdef class IndexEngine: try: return self.mapping.get_item(val) - except TypeError: + except (TypeError, ValueError): raise KeyError(val) cdef inline _get_loc_duplicates(self, object val): @@ -470,7 +470,7 @@ cdef class DatetimeEngine(Int64Engine): try: val = _to_i8(val) return self.mapping.get_item(val) - except TypeError: + except (TypeError, ValueError): self._date_check_type(val) raise KeyError(val) diff --git a/pandas/core/frame.py b/pandas/core/frame.py index 8d437102e4d18..7c5a460571fe9 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -1919,7 +1919,7 @@ def get_value(self, index, col, takeable=False): try: return engine.get_value(series._values, index) - except TypeError: + except (TypeError, ValueError): # we cannot handle direct indexing # use positional diff --git a/pandas/core/indexes/base.py b/pandas/core/indexes/base.py index 9b29f1b04ff73..3b069e4646c8e 100644 --- a/pandas/core/indexes/base.py +++ b/pandas/core/indexes/base.py @@ -1590,7 +1590,7 @@ def __contains__(self, key): hash(key) try: return key in self._engine - except TypeError: + except (TypeError, ValueError): return False _index_shared_docs['contains'] = """ @@ -1610,7 +1610,7 @@ def contains(self, key): hash(key) try: return key in self._engine - except TypeError: + except (TypeError, ValueError): return False def __hash__(self):