Skip to content

BUG: isin does some inconsistent type casting? #34125

Closed
@phofl

Description

@phofl
  • I have checked that this issue has not already been reported.

  • I have confirmed this bug exists on the latest version of pandas.

  • (optional) I have confirmed this bug exists on the master branch of pandas. (exists on the version I checked out 2 weeks ago)

I observed the following behavior:

When I define my DataFrame with a numeric column like

import pandas as pd
df = pd.DataFrame({"a": [1, 2]})

and filter with isin() for "1" like

df["a"].isin(["1"])

I get

0     True
1    False
Name: a, dtype: bool

which results probably from implicit type casting?

But when my column has datatype object like

df = pd.DataFrame({"a": [1, "2"]})

and filter again with isin()

df["a"].isin(["1"])

I get the following:

0    False
1    False
Name: a, dtype: bool

That was the output I expected.
This seems a bit inconsistent. Is this the expected behavior? If not, I would look into this, if I have a bit of time in the coming weeks. This may be loosely related to #19356 .

Output of pd.show_versions()

python : 3.7.7.final.0
python-bits : 64
OS : Linux
OS-release : 4.15.0-99-generic
machine : x86_64
processor : x86_64
byteorder : little
LC_ALL : None
LANG : en_US.UTF-8
LOCALE : en_US.UTF-8

pandas : 1.0.1
numpy : 1.18.1
pytz : 2019.3
dateutil : 2.8.1
pip : 20.0.2
setuptools : 46.1.3.post20200330
Cython : 0.29.15
pytest : 5.4.1
hypothesis : 5.8.3
sphinx : 2.4.4
blosc : None
feather : None
xlsxwriter : 1.2.8
lxml.etree : 4.5.0
html5lib : 1.0.1
pymysql : None
psycopg2 : None
jinja2 : 2.11.1
IPython : 7.13.0
pandas_datareader: None
bs4 : 4.8.2
bottleneck : 1.3.2
fastparquet : None
gcsfs : None
lxml.etree : 4.5.0
matplotlib : 3.1.3
numexpr : 2.7.1
odfpy : None
openpyxl : 3.0.3
pandas_gbq : None
pyarrow : None
pytables : None
pytest : 5.4.1
pyxlsb : None
s3fs : None
scipy : 1.4.1
sqlalchemy : 1.3.13
tables : 3.6.1
tabulate : None
xarray : None
xlrd : 1.2.0
xlwt : 1.3.0
xlsxwriter : 1.2.8
numba : 0.49.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugDtype ConversionsUnexpected or buggy dtype conversionsisinisin method

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions