From beacde3149de5eb6017ac45048736b6491ef5fc7 Mon Sep 17 00:00:00 2001 From: Andrew Wood Date: Mon, 23 Aug 2021 15:00:49 -0600 Subject: [PATCH 1/4] TST: Test renaming a multiindex with duplicates --- pandas/tests/indexing/multiindex/test_multiindex.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pandas/tests/indexing/multiindex/test_multiindex.py b/pandas/tests/indexing/multiindex/test_multiindex.py index b04a76093a002..283fae4de9608 100644 --- a/pandas/tests/indexing/multiindex/test_multiindex.py +++ b/pandas/tests/indexing/multiindex/test_multiindex.py @@ -119,3 +119,13 @@ def test_multiindex_complex(self): ), ) tm.assert_frame_equal(result, expected) + + def test_rename_multiindex_with_duplicates(self): + # GH 38015 + idx = pd.Index([("A", "cat"), ("B", "cat"), ("B", "cat")]) + df = pd.DataFrame(index=idx) + df = df.rename(index={"A": "Apple"}, level=0) + + result = df.index + expected = pd.Index([("Apple", "cat"), ("B", "cat"), ("B", "cat")]) + tm.assert_index_equal(result, expected) From 520d5c215817014e744b8be43698d7d26134fb2f Mon Sep 17 00:00:00 2001 From: Andrew Wood Date: Mon, 23 Aug 2021 16:03:37 -0600 Subject: [PATCH 2/4] TST: Renaming multiindex with duplicates --- pandas/tests/indexing/multiindex/test_multiindex.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pandas/tests/indexing/multiindex/test_multiindex.py b/pandas/tests/indexing/multiindex/test_multiindex.py index 283fae4de9608..c53365f758970 100644 --- a/pandas/tests/indexing/multiindex/test_multiindex.py +++ b/pandas/tests/indexing/multiindex/test_multiindex.py @@ -122,10 +122,10 @@ def test_multiindex_complex(self): def test_rename_multiindex_with_duplicates(self): # GH 38015 - idx = pd.Index([("A", "cat"), ("B", "cat"), ("B", "cat")]) - df = pd.DataFrame(index=idx) + mi = pd.MultiIndex.from_tuples([("A", "cat"), ("B", "cat"), ("B", "cat")]) + df = pd.DataFrame(index=mi) df = df.rename(index={"A": "Apple"}, level=0) - result = df.index - expected = pd.Index([("Apple", "cat"), ("B", "cat"), ("B", "cat")]) - tm.assert_index_equal(result, expected) + expected_mi = pd.MultiIndex.from_tuples([("Apple", "cat"), ("B", "cat"), ("B", "cat")]) + expected = pd.DataFrame(index=expected_mi) + tm.assert_frame_equal(df, expected) From e95ad00b68ea9941d33325d59d4cb0d035a116cd Mon Sep 17 00:00:00 2001 From: Andrew Wood Date: Mon, 23 Aug 2021 16:17:10 -0600 Subject: [PATCH 3/4] TST: Renaming multiindex containing duplicates --- pandas/tests/indexing/multiindex/test_multiindex.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandas/tests/indexing/multiindex/test_multiindex.py b/pandas/tests/indexing/multiindex/test_multiindex.py index c53365f758970..82eeb74f2ddd5 100644 --- a/pandas/tests/indexing/multiindex/test_multiindex.py +++ b/pandas/tests/indexing/multiindex/test_multiindex.py @@ -126,6 +126,6 @@ def test_rename_multiindex_with_duplicates(self): df = pd.DataFrame(index=mi) df = df.rename(index={"A": "Apple"}, level=0) - expected_mi = pd.MultiIndex.from_tuples([("Apple", "cat"), ("B", "cat"), ("B", "cat")]) - expected = pd.DataFrame(index=expected_mi) + mi2 = pd.MultiIndex.from_tuples([("Apple", "cat"), ("B", "cat"), ("B", "cat")]) + expected = pd.DataFrame(index=mi2) tm.assert_frame_equal(df, expected) From 7258eb4420f507859652fbddeb82221b48f60380 Mon Sep 17 00:00:00 2001 From: Andrew Wood Date: Sat, 4 Sep 2021 23:01:47 -0600 Subject: [PATCH 4/4] Update test_multiindex.py --- pandas/tests/indexing/multiindex/test_multiindex.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pandas/tests/indexing/multiindex/test_multiindex.py b/pandas/tests/indexing/multiindex/test_multiindex.py index 82eeb74f2ddd5..479d048d35fbd 100644 --- a/pandas/tests/indexing/multiindex/test_multiindex.py +++ b/pandas/tests/indexing/multiindex/test_multiindex.py @@ -122,10 +122,10 @@ def test_multiindex_complex(self): def test_rename_multiindex_with_duplicates(self): # GH 38015 - mi = pd.MultiIndex.from_tuples([("A", "cat"), ("B", "cat"), ("B", "cat")]) - df = pd.DataFrame(index=mi) + mi = MultiIndex.from_tuples([("A", "cat"), ("B", "cat"), ("B", "cat")]) + df = DataFrame(index=mi) df = df.rename(index={"A": "Apple"}, level=0) - mi2 = pd.MultiIndex.from_tuples([("Apple", "cat"), ("B", "cat"), ("B", "cat")]) - expected = pd.DataFrame(index=mi2) + mi2 = MultiIndex.from_tuples([("Apple", "cat"), ("B", "cat"), ("B", "cat")]) + expected = DataFrame(index=mi2) tm.assert_frame_equal(df, expected)