From 457d388fdd774d98b8187caa3a913a27ded653e6 Mon Sep 17 00:00:00 2001 From: phofl Date: Mon, 9 Nov 2020 23:27:14 +0100 Subject: [PATCH 1/4] TST: Add test for filling new rows through reindexing MultiIndex --- pandas/tests/indexes/multi/test_reindex.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pandas/tests/indexes/multi/test_reindex.py b/pandas/tests/indexes/multi/test_reindex.py index ceb14aa82a76c..fd0c68061e323 100644 --- a/pandas/tests/indexes/multi/test_reindex.py +++ b/pandas/tests/indexes/multi/test_reindex.py @@ -101,3 +101,13 @@ def test_reindex_non_unique(): msg = "cannot handle a non-unique multi-index!" with pytest.raises(ValueError, match=msg): a.reindex(new_idx) + + +def test_reindex_fill_added_rows(): + # GH: 23693 + i = pd.MultiIndex.from_tuples([('a', 'b'), ('d', 'e')]) + df = pd.DataFrame([[0, 7], [3, 4]], index=i, columns=['x', 'y']) + i2 = pd.MultiIndex.from_tuples([('a', 'b'), ('d', 'e'), ('h', 'i')]) + result = df.reindex(i2, axis=0, method='ffill') + expected = pd.DataFrame([[0, 7], [3, 4], [3, 4]], index=i2, columns=['x', 'y']) + tm.assert_frame_equal(result, expected) From 659d8795ea51cfe767d2f84b83c25a7a21794edb Mon Sep 17 00:00:00 2001 From: phofl Date: Mon, 9 Nov 2020 23:27:55 +0100 Subject: [PATCH 2/4] Run balack --- pandas/tests/indexes/multi/test_reindex.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pandas/tests/indexes/multi/test_reindex.py b/pandas/tests/indexes/multi/test_reindex.py index fd0c68061e323..2f406a595f130 100644 --- a/pandas/tests/indexes/multi/test_reindex.py +++ b/pandas/tests/indexes/multi/test_reindex.py @@ -105,9 +105,9 @@ def test_reindex_non_unique(): def test_reindex_fill_added_rows(): # GH: 23693 - i = pd.MultiIndex.from_tuples([('a', 'b'), ('d', 'e')]) - df = pd.DataFrame([[0, 7], [3, 4]], index=i, columns=['x', 'y']) - i2 = pd.MultiIndex.from_tuples([('a', 'b'), ('d', 'e'), ('h', 'i')]) - result = df.reindex(i2, axis=0, method='ffill') - expected = pd.DataFrame([[0, 7], [3, 4], [3, 4]], index=i2, columns=['x', 'y']) + i = pd.MultiIndex.from_tuples([("a", "b"), ("d", "e")]) + df = pd.DataFrame([[0, 7], [3, 4]], index=i, columns=["x", "y"]) + i2 = pd.MultiIndex.from_tuples([("a", "b"), ("d", "e"), ("h", "i")]) + result = df.reindex(i2, axis=0, method="ffill") + expected = pd.DataFrame([[0, 7], [3, 4], [3, 4]], index=i2, columns=["x", "y"]) tm.assert_frame_equal(result, expected) From 5efda6c2454d2efe702eb7e694621817fbb403e9 Mon Sep 17 00:00:00 2001 From: phofl Date: Tue, 10 Nov 2020 23:52:28 +0100 Subject: [PATCH 3/4] Move test --- pandas/tests/frame/methods/test_reindex.py | 9 +++++++++ pandas/tests/indexes/multi/test_reindex.py | 10 ---------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/pandas/tests/frame/methods/test_reindex.py b/pandas/tests/frame/methods/test_reindex.py index bc3750a196c5f..804a0046ecbc7 100644 --- a/pandas/tests/frame/methods/test_reindex.py +++ b/pandas/tests/frame/methods/test_reindex.py @@ -864,3 +864,12 @@ def test_reindex_signature(self): "fill_value", "tolerance", } + + def test_reindex_fill_added_rows(self): + # GH: 23693 + mi = MultiIndex.from_tuples([("a", "b"), ("d", "e")]) + df = DataFrame([[0, 7], [3, 4]], index=mi, columns=["x", "y"]) + mi2 = MultiIndex.from_tuples([("a", "b"), ("d", "e"), ("h", "i")]) + result = df.reindex(mi2, axis=0, method="ffill") + expected = DataFrame([[0, 7], [3, 4], [3, 4]], index=mi2, columns=["x", "y"]) + tm.assert_frame_equal(result, expected) diff --git a/pandas/tests/indexes/multi/test_reindex.py b/pandas/tests/indexes/multi/test_reindex.py index 2f406a595f130..ceb14aa82a76c 100644 --- a/pandas/tests/indexes/multi/test_reindex.py +++ b/pandas/tests/indexes/multi/test_reindex.py @@ -101,13 +101,3 @@ def test_reindex_non_unique(): msg = "cannot handle a non-unique multi-index!" with pytest.raises(ValueError, match=msg): a.reindex(new_idx) - - -def test_reindex_fill_added_rows(): - # GH: 23693 - i = pd.MultiIndex.from_tuples([("a", "b"), ("d", "e")]) - df = pd.DataFrame([[0, 7], [3, 4]], index=i, columns=["x", "y"]) - i2 = pd.MultiIndex.from_tuples([("a", "b"), ("d", "e"), ("h", "i")]) - result = df.reindex(i2, axis=0, method="ffill") - expected = pd.DataFrame([[0, 7], [3, 4], [3, 4]], index=i2, columns=["x", "y"]) - tm.assert_frame_equal(result, expected) From d94a0eb26566a565c1564bd86d6b481f2d857a63 Mon Sep 17 00:00:00 2001 From: phofl Date: Thu, 12 Nov 2020 01:26:40 +0100 Subject: [PATCH 4/4] Rename test --- pandas/tests/frame/methods/test_reindex.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pandas/tests/frame/methods/test_reindex.py b/pandas/tests/frame/methods/test_reindex.py index 804a0046ecbc7..113a80f1c5c4e 100644 --- a/pandas/tests/frame/methods/test_reindex.py +++ b/pandas/tests/frame/methods/test_reindex.py @@ -865,8 +865,9 @@ def test_reindex_signature(self): "tolerance", } - def test_reindex_fill_added_rows(self): - # GH: 23693 + def test_reindex_multiindex_ffill_added_rows(self): + # GH#23693 + # reindex added rows with nan values even when fill method was specified mi = MultiIndex.from_tuples([("a", "b"), ("d", "e")]) df = DataFrame([[0, 7], [3, 4]], index=mi, columns=["x", "y"]) mi2 = MultiIndex.from_tuples([("a", "b"), ("d", "e"), ("h", "i")])