From 5a6def89b8cf82b88bc45eec8ddc90b8f14a8aba Mon Sep 17 00:00:00 2001 From: Daniel Saxton Date: Sat, 1 Aug 2020 16:46:23 -0500 Subject: [PATCH 1/3] REGR: Check for float in isnaobj_old --- doc/source/whatsnew/v1.1.1.rst | 2 +- pandas/_libs/missing.pyx | 5 ++++- pandas/tests/io/parser/test_common.py | 12 +++++++++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/doc/source/whatsnew/v1.1.1.rst b/doc/source/whatsnew/v1.1.1.rst index 443589308ad4c..a9447bad8e46e 100644 --- a/doc/source/whatsnew/v1.1.1.rst +++ b/doc/source/whatsnew/v1.1.1.rst @@ -15,7 +15,7 @@ including other versions of pandas. Fixed regressions ~~~~~~~~~~~~~~~~~ -- +- Fixed regression where :func:`read_csv` would raise a ``ValueError`` when ``use_inf_as_na`` was set to ``True`` (:issue:`35493`). - - diff --git a/pandas/_libs/missing.pyx b/pandas/_libs/missing.pyx index 760fab3781fd4..6aa59cbf02cf0 100644 --- a/pandas/_libs/missing.pyx +++ b/pandas/_libs/missing.pyx @@ -155,7 +155,10 @@ def isnaobj_old(arr: ndarray) -> ndarray: result = np.zeros(n, dtype=np.uint8) for i in range(n): val = arr[i] - result[i] = checknull(val) or val == INF or val == NEGINF + result[i] = ( + checknull(val) + or isinstance(val, float) and (val == INF or val == NEGINF) + ) return result.view(np.bool_) diff --git a/pandas/tests/io/parser/test_common.py b/pandas/tests/io/parser/test_common.py index 12e73bae40eac..5154a9ba6fdf0 100644 --- a/pandas/tests/io/parser/test_common.py +++ b/pandas/tests/io/parser/test_common.py @@ -18,7 +18,7 @@ from pandas.errors import DtypeWarning, EmptyDataError, ParserError import pandas.util._test_decorators as td -from pandas import DataFrame, Index, MultiIndex, Series, compat, concat +from pandas import DataFrame, Index, MultiIndex, Series, compat, concat, option_context import pandas._testing as tm from pandas.io.parsers import CParserWrapper, TextFileReader, TextParser @@ -2179,3 +2179,13 @@ def test_read_csv_names_not_accepting_sets(all_parsers): parser = all_parsers with pytest.raises(ValueError, match="Names should be an ordered collection."): parser.read_csv(StringIO(data), names=set("QAZ")) + + +def test_read_csv_with_use_inf_as_na(all_parsers): + # https://github.com/pandas-dev/pandas/issues/35493 + parser = all_parsers + data = "1.0\nNaN\n3.0" + with option_context("use_inf_as_na", True): + result = parser.read_csv(StringIO(data), header=None) + expected = DataFrame([1.0, np.nan, 3.0]) + tm.assert_frame_equal(result, expected) From 06ddf8ded88ef8abab3bb533040f794715f5914b Mon Sep 17 00:00:00 2001 From: Daniel Saxton Date: Sat, 1 Aug 2020 19:39:09 -0500 Subject: [PATCH 2/3] isinstance -> is_float_object --- pandas/_libs/missing.pyx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/_libs/missing.pyx b/pandas/_libs/missing.pyx index 6aa59cbf02cf0..771e8053ac9be 100644 --- a/pandas/_libs/missing.pyx +++ b/pandas/_libs/missing.pyx @@ -157,7 +157,7 @@ def isnaobj_old(arr: ndarray) -> ndarray: val = arr[i] result[i] = ( checknull(val) - or isinstance(val, float) and (val == INF or val == NEGINF) + or util.is_float_object(val) and (val == INF or val == NEGINF) ) return result.view(np.bool_) From fa0f9c77235735eee0ac10320807da0a394f7758 Mon Sep 17 00:00:00 2001 From: Daniel Saxton Date: Sun, 2 Aug 2020 09:52:35 -0500 Subject: [PATCH 3/3] Use full path in note --- doc/source/whatsnew/v1.1.1.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/whatsnew/v1.1.1.rst b/doc/source/whatsnew/v1.1.1.rst index a9447bad8e46e..f8f655ce7b866 100644 --- a/doc/source/whatsnew/v1.1.1.rst +++ b/doc/source/whatsnew/v1.1.1.rst @@ -15,7 +15,7 @@ including other versions of pandas. Fixed regressions ~~~~~~~~~~~~~~~~~ -- Fixed regression where :func:`read_csv` would raise a ``ValueError`` when ``use_inf_as_na`` was set to ``True`` (:issue:`35493`). +- Fixed regression where :func:`read_csv` would raise a ``ValueError`` when ``pandas.options.mode.use_inf_as_na`` was set to ``True`` (:issue:`35493`). - -