diff --git a/pandas/core/indexes/category.py b/pandas/core/indexes/category.py index f7fead0d94dfe6..73408ae2037248 100644 --- a/pandas/core/indexes/category.py +++ b/pandas/core/indexes/category.py @@ -326,16 +326,18 @@ def __contains__(self, key): hash(key) if isna(key): return self.isna().any() - elif self.categories._defer_to_indexing: # e.g. Interval values + try: loc = self.categories.get_loc(key) - return np.isin(self.codes, loc).any() - elif key in self.categories: - return self.categories.get_loc(key) in self._engine - else: + except KeyError: return False + if is_scalar(loc): + return loc in self._engine + else: # if self.categories is IntervalIndex, loc is an array + return any(loc_ in self._engine for loc_ in loc) @Appender(_index_shared_docs['contains'] % _index_doc_kwargs) def contains(self, key): + hash(key) return key in self def __array__(self, dtype=None):