From edb57b2d5d5bc18897f524a4e0a8a396ba95ec9b Mon Sep 17 00:00:00 2001 From: Roger Murray Date: Mon, 28 Feb 2022 23:57:40 -0500 Subject: [PATCH 1/6] TST: add test for correct behaviour of multiindex loc with splice --- pandas/tests/indexing/multiindex/test_loc.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/pandas/tests/indexing/multiindex/test_loc.py b/pandas/tests/indexing/multiindex/test_loc.py index 6e59311634c76..b69d38765391c 100644 --- a/pandas/tests/indexing/multiindex/test_loc.py +++ b/pandas/tests/indexing/multiindex/test_loc.py @@ -402,6 +402,22 @@ def test_sorted_multiindex_after_union(self): result = df.loc["2011-01-01":"2011-01-02"] tm.assert_frame_equal(result, expected) + def test_loc_keep_second_level_index(self): + # GH#43599 + df = DataFrame( + index=MultiIndex.from_product( + [list('ab'), list('cd'), list('e')]), + columns=['Val'] + ) + res = df.loc[np.s_[:,'c',:]] + expected = DataFrame( + index=pd.MultiIndex.from_product( + [list('ab'), list('e')]), + columns=['Val'] + ) + tm.assert_frame_equal(res, expected) + + @pytest.mark.parametrize( "indexer, pos", From ff1fefc6652472f028c5d91bfed10e9da346d20a Mon Sep 17 00:00:00 2001 From: Roger Murray <96553566+rogimus@users.noreply.github.com> Date: Tue, 1 Mar 2022 00:02:53 -0500 Subject: [PATCH 2/6] Fix spacing --- pandas/tests/indexing/multiindex/test_loc.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pandas/tests/indexing/multiindex/test_loc.py b/pandas/tests/indexing/multiindex/test_loc.py index b69d38765391c..edd732e0b8cc6 100644 --- a/pandas/tests/indexing/multiindex/test_loc.py +++ b/pandas/tests/indexing/multiindex/test_loc.py @@ -402,7 +402,8 @@ def test_sorted_multiindex_after_union(self): result = df.loc["2011-01-01":"2011-01-02"] tm.assert_frame_equal(result, expected) - def test_loc_keep_second_level_index(self): + + def test_loc_no_second_level_index(self): # GH#43599 df = DataFrame( index=MultiIndex.from_product( @@ -416,9 +417,8 @@ def test_loc_keep_second_level_index(self): columns=['Val'] ) tm.assert_frame_equal(res, expected) - - - + + @pytest.mark.parametrize( "indexer, pos", [ From 6a23e70bfebb30d68c3417af64b2c1c8df0099f1 Mon Sep 17 00:00:00 2001 From: Roger Murray <96553566+rogimus@users.noreply.github.com> Date: Tue, 1 Mar 2022 00:10:20 -0500 Subject: [PATCH 3/6] editing spacing for PEP 8 --- pandas/tests/indexing/multiindex/test_loc.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pandas/tests/indexing/multiindex/test_loc.py b/pandas/tests/indexing/multiindex/test_loc.py index edd732e0b8cc6..c6b612d3d3025 100644 --- a/pandas/tests/indexing/multiindex/test_loc.py +++ b/pandas/tests/indexing/multiindex/test_loc.py @@ -402,7 +402,7 @@ def test_sorted_multiindex_after_union(self): result = df.loc["2011-01-01":"2011-01-02"] tm.assert_frame_equal(result, expected) - + def test_loc_no_second_level_index(self): # GH#43599 df = DataFrame( @@ -410,15 +410,15 @@ def test_loc_no_second_level_index(self): [list('ab'), list('cd'), list('e')]), columns=['Val'] ) - res = df.loc[np.s_[:,'c',:]] + res = df.loc[np.s_[:, 'c', :]] expected = DataFrame( index=pd.MultiIndex.from_product( [list('ab'), list('e')]), columns=['Val'] ) tm.assert_frame_equal(res, expected) - - + + @pytest.mark.parametrize( "indexer, pos", [ From 6dd20d8514127f0a7a642fee28ad7947e9c6dc1d Mon Sep 17 00:00:00 2001 From: Roger Murray <96553566+rogimus@users.noreply.github.com> Date: Tue, 1 Mar 2022 00:12:04 -0500 Subject: [PATCH 4/6] fixing blank lines for PEP 8 --- pandas/tests/indexing/multiindex/test_loc.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pandas/tests/indexing/multiindex/test_loc.py b/pandas/tests/indexing/multiindex/test_loc.py index c6b612d3d3025..065fcca4ffa5d 100644 --- a/pandas/tests/indexing/multiindex/test_loc.py +++ b/pandas/tests/indexing/multiindex/test_loc.py @@ -402,7 +402,6 @@ def test_sorted_multiindex_after_union(self): result = df.loc["2011-01-01":"2011-01-02"] tm.assert_frame_equal(result, expected) - def test_loc_no_second_level_index(self): # GH#43599 df = DataFrame( From b3a97451593a6972d8c9060302dc5636f720b3c5 Mon Sep 17 00:00:00 2001 From: Roger Murray <96553566+rogimus@users.noreply.github.com> Date: Tue, 1 Mar 2022 00:35:17 -0500 Subject: [PATCH 5/6] fixing precommit checks --- pandas/tests/indexing/multiindex/test_loc.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/pandas/tests/indexing/multiindex/test_loc.py b/pandas/tests/indexing/multiindex/test_loc.py index 065fcca4ffa5d..f93e7a948a583 100644 --- a/pandas/tests/indexing/multiindex/test_loc.py +++ b/pandas/tests/indexing/multiindex/test_loc.py @@ -405,15 +405,12 @@ def test_sorted_multiindex_after_union(self): def test_loc_no_second_level_index(self): # GH#43599 df = DataFrame( - index=MultiIndex.from_product( - [list('ab'), list('cd'), list('e')]), - columns=['Val'] + index=MultiIndex.from_product([list("ab"), list("cd"), list("e")]), + columns=["Val"], ) - res = df.loc[np.s_[:, 'c', :]] + res = df.loc[np.s_[:, "c", :]] expected = DataFrame( - index=pd.MultiIndex.from_product( - [list('ab'), list('e')]), - columns=['Val'] + index=MultiIndex.from_product([list("ab"), list("e")]), columns=["Val"] ) tm.assert_frame_equal(res, expected) From 5c9b7a02d4faedc4816f1dd4d59622f6b35ad9a5 Mon Sep 17 00:00:00 2001 From: Roger Murray <96553566+rogimus@users.noreply.github.com> Date: Tue, 1 Mar 2022 00:43:17 -0500 Subject: [PATCH 6/6] fixing pre-commit (whitespace) --- pandas/tests/indexing/multiindex/test_loc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/tests/indexing/multiindex/test_loc.py b/pandas/tests/indexing/multiindex/test_loc.py index f93e7a948a583..bdb59db1a1b38 100644 --- a/pandas/tests/indexing/multiindex/test_loc.py +++ b/pandas/tests/indexing/multiindex/test_loc.py @@ -405,7 +405,7 @@ def test_sorted_multiindex_after_union(self): def test_loc_no_second_level_index(self): # GH#43599 df = DataFrame( - index=MultiIndex.from_product([list("ab"), list("cd"), list("e")]), + index=MultiIndex.from_product([list("ab"), list("cd"), list("e")]), columns=["Val"], ) res = df.loc[np.s_[:, "c", :]]