Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BUG: unexpected behaviour of pandas.Series.isna on Float64 #55787

Closed
2 of 3 tasks
Fresh-Mint opened this issue Nov 1, 2023 · 2 comments
Closed
2 of 3 tasks

BUG: unexpected behaviour of pandas.Series.isna on Float64 #55787

Fresh-Mint opened this issue Nov 1, 2023 · 2 comments
Labels
Bug Missing-data np.nan, pd.NaT, pd.NA, dropna, isnull, interpolate

Comments

@Fresh-Mint
Copy link

Fresh-Mint commented Nov 1, 2023

Pandas version checks

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

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

  • I have confirmed this bug exists on the main branch of pandas.

Reproducible Example

import pandas as pd

s0 = pd.Series([0.0 for _ in range(10)], dtype="Float64") / 0.0


# Unexpected behaviour
print(s0.isna())
# output
# 0    False
# 1    False
# 2    False
# 3    False
# 4    False
# 5    False
# 6    False
# 7    False
# 8    False
# 9    False
# dtype: bool

# Expected behaviour of Series.isna
print(s0.apply(pd.isna))
# output
# 0    True
# 1    True
# 2    True
# 3    True
# 4    True
# 5    True
# 6    True
# 7    True
# 8    True
# 9    True
# dtype: bool

Issue Description

pandas.Series.isna returns False on NaN resulted from Float64

Expected Behavior

Expect True to be returned on NaN resulted from Float64

Installed Versions

INSTALLED VERSIONS

commit : a60ad39
python : 3.11.6.final.0
python-bits : 64
OS : Linux
machine : x86_64
processor : x86_64
byteorder : little
LC_ALL : None
LANG : en_US.UTF-8
LOCALE : en_US.UTF-8

pandas : 2.1.2
numpy : 1.26.1
pytz : 2023.3.post1
dateutil : 2.8.2
setuptools : 68.2.2
pip : 23.3.1
Cython : None
pytest : None
hypothesis : None
sphinx : None
blosc : None
feather : None
xlsxwriter : None
lxml.etree : None
html5lib : None
pymysql : None
psycopg2 : None
jinja2 : None
IPython : 8.17.2
pandas_datareader : None
bs4 : None
bottleneck : None
dataframe-api-compat: None
fastparquet : None
fsspec : None
gcsfs : None
matplotlib : None
numba : None
numexpr : None
odfpy : None
openpyxl : None
pandas_gbq : None
pyarrow : None
pyreadstat : None
pyxlsb : None
s3fs : None
scipy : None
sqlalchemy : None
tables : None
tabulate : None
xarray : None
xlrd : None
zstandard : None
tzdata : 2023.3
qtpy : None
pyqt5 : None

@Fresh-Mint Fresh-Mint added Bug Needs Triage Issue that has not been reviewed by a pandas team member labels Nov 1, 2023
@paulreece
Copy link
Contributor

Occurs on main and 2.1.x.

It's because this function is expecting np.ndarray but instead receives pandas.core.arrays.floating.FloatingArray:

def _isna_array(values: ArrayLike, inf_as_na: bool = False):
"""
Return an array indicating which values of the input array are NaN / NA.
Parameters
----------
obj: ndarray or ExtensionArray
The input array whose elements are to be checked.
inf_as_na: bool
Whether or not to treat infinite values as NA.
Returns
-------
array-like
Array of boolean values denoting the NA status of each element.
"""
dtype = values.dtype
if not isinstance(values, np.ndarray):

@paulreece paulreece added Missing-data np.nan, pd.NaT, pd.NA, dropna, isnull, interpolate and removed Needs Triage Issue that has not been reviewed by a pandas team member labels Nov 1, 2023
@mroeschke
Copy link
Member

Thanks for the report. The core issue is being discussed in #32265 so closing in favor of that issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Missing-data np.nan, pd.NaT, pd.NA, dropna, isnull, interpolate
Projects
None yet
Development

No branches or pull requests

3 participants