BUG: replace inconsistency with np.nan & pd.NA (original) (raw)

Pandas version checks

Reproducible Example

In [15]: import pandas as pd

In [16]: s = pd.Series([1, 2, None], dtype="Int64")

In [17]: s Out[17]: 0 1 1 2 2 dtype: Int64

In [18]: s.replace(np.nan, -1) Out[18]: 0 1 1 2 2 -1 dtype: Int64

In [20]: s.replace(pd.NA, -1) Out[20]: 0 1 1 2 2 -1 dtype: Int64

In [21]: pd.version Out[21]: '1.5.3'

Issue Description

s is a nullable int64 dtype series, but when calling replace with np.nan, pd.NA values are being replaced too. Is this an expected behavior?

Expected Behavior

In [15]: import pandas as pd

In [16]: s = pd.Series([1, 2, None], dtype="Int64")

In [17]: s Out[17]: 0 1 1 2 2 dtype: Int64

In [18]: s.replace(np.nan, -1) Out[18]: 0 1 1 2 2 dtype: Int64

In [20]: s.replace(pd.NA, -1) Out[20]: 0 1 1 2 2 -1 dtype: Int64

In [21]: pd.version Out[21]: '1.5.3'

Installed Versions

In [22]: pd.show_versions()
/nvme/0/pgali/envs/cudfdev/lib/python3.10/site-packages/_distutils_hack/init.py:33: UserWarning: Setuptools is replacing distutils.
warnings.warn("Setuptools is replacing distutils.")

INSTALLED VERSIONS

commit : 2e218d1
python : 3.10.9.final.0
python-bits : 64
OS : Linux
OS-release : 4.15.0-76-generic
Version : #86-Ubuntu SMP Fri Jan 17 17:24:28 UTC 2020
machine : x86_64
processor : x86_64
byteorder : little
LC_ALL : None
LANG : en_US.UTF-8
LOCALE : en_US.UTF-8

pandas : 1.5.3
numpy : 1.23.5
pytz : 2022.7.1
dateutil : 2.8.2
setuptools : 67.1.0
pip : 23.0
Cython : 0.29.33
pytest : 7.2.1
hypothesis : 6.67.1
sphinx : 5.3.0
blosc : None
feather : None
xlsxwriter : None
lxml.etree : None
html5lib : None
pymysql : None
psycopg2 : None
jinja2 : 3.1.2
IPython : 8.9.0
pandas_datareader: None
bs4 : 4.11.2
bottleneck : None
brotli :
fastparquet : None
fsspec : 2023.1.0
gcsfs : None
matplotlib : None
numba : 0.56.4
numexpr : None
odfpy : None
openpyxl : None
pandas_gbq : None
pyarrow : 10.0.1
pyreadstat : None
pyxlsb : None
s3fs : 2023.1.0
scipy : 1.10.0
snappy :
sqlalchemy : 1.4.46
tables : None
tabulate : 0.9.0
xarray : None
xlrd : None
xlwt : None
zstandard : None
tzdata : None