pd.Categorical.contains([item, otheritem]) raises ValueError · Issue #21729 · pandas-dev/pandas (original) (raw)
Code Sample, a copy-pastable example if possible
In [2]: idx = pd.CategoricalIndex([1, 2, 3])
In [3]: list('a') in idx
TypeError Traceback (most recent call last) in () ----> 1 list('a') in idx
/home/nobackup/repo/pandas/pandas/core/indexes/category.py in contains(self, key) 327 return self.hasnans 328 --> 329 return contains(self, key, container=self._engine) 330 331 @Appender(_index_shared_docs['contains'] % _index_doc_kwargs)
/home/nobackup/repo/pandas/pandas/core/arrays/categorical.py in contains(cat, key, container) 187 before calling this method. 188 """ --> 189 hash(key) 190 191 # get location of key in categories.
TypeError: unhashable type: 'list'
In [4]: list('ab') in idx
ValueError Traceback (most recent call last) in () ----> 1 list('ab') in idx
/home/nobackup/repo/pandas/pandas/core/indexes/category.py in contains(self, key) 324 def contains(self, key): 325 # if key is a NaN, check if any NaN is in self. --> 326 if isna(key): 327 return self.hasnans 328
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Problem description
This is the only case, to the best of my (very limited - I didn't investigate much) knowledge, in which the contains
method of an index raises anything different from TypeError: unhashable type:...
.
xref #21313
Expected Output
TypeError: unhashable type: 'list'
Output of pd.show_versions()
INSTALLED VERSIONS
commit: 2b13605
python: 3.5.3.final.0
python-bits: 64
OS: Linux
OS-release: 4.9.0-6-amd64
machine: x86_64
processor:
byteorder: little
LC_ALL: None
LANG: it_IT.UTF-8
LOCALE: it_IT.UTF-8
pandas: 0.24.0.dev0+216.g2b136054d
pytest: 3.5.0
pip: 9.0.1
setuptools: 39.2.0
Cython: 0.25.2
numpy: 1.14.3
scipy: 0.19.0
pyarrow: None
xarray: None
IPython: 6.2.1
sphinx: 1.5.6
patsy: 0.5.0
dateutil: 2.7.3
pytz: 2018.4
blosc: None
bottleneck: 1.2.0dev
tables: 3.3.0
numexpr: 2.6.1
feather: 0.3.1
matplotlib: 2.2.2.post1153+gff6786446
openpyxl: 2.3.0
xlrd: 1.0.0
xlwt: 1.3.0
xlsxwriter: 0.9.6
lxml: 4.1.1
bs4: 4.5.3
html5lib: 0.999999999
sqlalchemy: 1.0.15
pymysql: None
psycopg2: None
jinja2: 2.10
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: 0.2.1
gcsfs: None