From 9860fb7d3e2baf6df29e5cac190acf759a6b8292 Mon Sep 17 00:00:00 2001 From: MiloniAtal Date: Sun, 22 May 2022 02:15:41 +0530 Subject: [PATCH 1/3] TST: For issue GH 47055 --- pandas/tests/series/indexing/test_indexing.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pandas/tests/series/indexing/test_indexing.py b/pandas/tests/series/indexing/test_indexing.py index 3a8e14576a55d..3df73b8207a89 100644 --- a/pandas/tests/series/indexing/test_indexing.py +++ b/pandas/tests/series/indexing/test_indexing.py @@ -16,6 +16,8 @@ date_range, period_range, timedelta_range, + Float64Dtype, + NA, ) import pandas._testing as tm @@ -329,6 +331,12 @@ def test_loc_setitem_all_false_indexer(): ser.loc[ser > 100] = rhs tm.assert_series_equal(ser, expected) +def test_reindexing_values(): + # GH 47055 + s = Series([1.0, NA], dtype=Float64Dtype()) + s_reindex = s.reindex(range(3)) + expected = np.array([1, np.NaN, np.NaN]) + assert np.array_equal(s_reindex.values._data, expected, equal_nan=True) class TestDeprecatedIndexers: @pytest.mark.parametrize("key", [{1}, {1: 1}]) From 3529d4dafa92c855b4dcbb2f95a164ad60c565d8 Mon Sep 17 00:00:00 2001 From: MiloniAtal Date: Sun, 22 May 2022 03:17:01 +0530 Subject: [PATCH 2/3] Changes according to pre-commit --- pandas/tests/series/indexing/test_indexing.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pandas/tests/series/indexing/test_indexing.py b/pandas/tests/series/indexing/test_indexing.py index 3df73b8207a89..a7db31c73bda8 100644 --- a/pandas/tests/series/indexing/test_indexing.py +++ b/pandas/tests/series/indexing/test_indexing.py @@ -6,7 +6,9 @@ import pytest from pandas import ( + NA, DataFrame, + Float64Dtype, IndexSlice, MultiIndex, Series, @@ -16,8 +18,6 @@ date_range, period_range, timedelta_range, - Float64Dtype, - NA, ) import pandas._testing as tm @@ -331,12 +331,14 @@ def test_loc_setitem_all_false_indexer(): ser.loc[ser > 100] = rhs tm.assert_series_equal(ser, expected) + def test_reindexing_values(): # GH 47055 s = Series([1.0, NA], dtype=Float64Dtype()) s_reindex = s.reindex(range(3)) expected = np.array([1, np.NaN, np.NaN]) - assert np.array_equal(s_reindex.values._data, expected, equal_nan=True) + tm.assert_numpy_array_equal(s_reindex.values._data, expected) + class TestDeprecatedIndexers: @pytest.mark.parametrize("key", [{1}, {1: 1}]) From bfbb97391fb2baca5655a2390a70d0d0fae5fb31 Mon Sep 17 00:00:00 2001 From: MiloniAtal Date: Wed, 8 Jun 2022 19:00:12 +0530 Subject: [PATCH 3/3] Made changes according to review --- pandas/tests/series/indexing/test_indexing.py | 10 ---------- pandas/tests/series/methods/test_reindex.py | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/pandas/tests/series/indexing/test_indexing.py b/pandas/tests/series/indexing/test_indexing.py index a7db31c73bda8..3a8e14576a55d 100644 --- a/pandas/tests/series/indexing/test_indexing.py +++ b/pandas/tests/series/indexing/test_indexing.py @@ -6,9 +6,7 @@ import pytest from pandas import ( - NA, DataFrame, - Float64Dtype, IndexSlice, MultiIndex, Series, @@ -332,14 +330,6 @@ def test_loc_setitem_all_false_indexer(): tm.assert_series_equal(ser, expected) -def test_reindexing_values(): - # GH 47055 - s = Series([1.0, NA], dtype=Float64Dtype()) - s_reindex = s.reindex(range(3)) - expected = np.array([1, np.NaN, np.NaN]) - tm.assert_numpy_array_equal(s_reindex.values._data, expected) - - class TestDeprecatedIndexers: @pytest.mark.parametrize("key", [{1}, {1: 1}]) def test_getitem_dict_and_set_deprecated(self, key): diff --git a/pandas/tests/series/methods/test_reindex.py b/pandas/tests/series/methods/test_reindex.py index e0f1491f49485..b64c7bec6ea39 100644 --- a/pandas/tests/series/methods/test_reindex.py +++ b/pandas/tests/series/methods/test_reindex.py @@ -2,7 +2,9 @@ import pytest from pandas import ( + NA, Categorical, + Float64Dtype, Index, MultiIndex, NaT, @@ -408,3 +410,16 @@ def test_reindex_missing_category(): msg = r"Cannot setitem on a Categorical with a new category \(-1\)" with pytest.raises(TypeError, match=msg): ser.reindex([1, 2, 3, 4, 5], fill_value=-1) + + +def test_reindexing_with_float64_NA_log(): + # GH 47055 + s = Series([1.0, NA], dtype=Float64Dtype()) + s_reindex = s.reindex(range(3)) + result = s_reindex.values._data + expected = np.array([1, np.NaN, np.NaN]) + tm.assert_numpy_array_equal(result, expected) + with tm.assert_produces_warning(None): + result_log = np.log(s_reindex) + expected_log = Series([0, np.NaN, np.NaN], dtype=Float64Dtype()) + tm.assert_series_equal(result_log, expected_log)