Skip to content

Commit 40f1cac

Browse files
committed
Add case for nan in categorical.__contains__
1 parent 4836a29 commit 40f1cac

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

pandas/core/arrays/categorical.py

+2
Original file line numberDiff line numberDiff line change
@@ -1851,6 +1851,8 @@ def __contains__(self, key):
18511851
"""Returns True if `key` is in this Categorical."""
18521852
if key in self.categories:
18531853
return self.categories.get_loc(key) in self.codes
1854+
elif isna(key) and self.isna().any():
1855+
return True
18541856
else:
18551857
return False
18561858

pandas/tests/indexes/test_category.py

+4
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,10 @@ def test_contains(self):
244244
list('aabbca') + [np.nan], categories=list('cabdef'))
245245
assert np.nan in ci
246246

247+
ci = CategoricalIndex(
248+
list('aaa'), categories=list('cabdef'))
249+
assert 'f' not in ci
250+
247251
def test_min_max(self):
248252

249253
ci = self.create_index(ordered=False)

0 commit comments

Comments
 (0)