From e292e368ce52c55f614e41854d950dc5d5121466 Mon Sep 17 00:00:00 2001 From: Ryan Nazareth Date: Sun, 10 Nov 2019 04:06:10 +0000 Subject: [PATCH 1/3] Add tests for case when merge on key is mix of index and column --- pandas/tests/reshape/merge/test_multi.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/pandas/tests/reshape/merge/test_multi.py b/pandas/tests/reshape/merge/test_multi.py index 1d8d2add3840c..3c239ad518007 100644 --- a/pandas/tests/reshape/merge/test_multi.py +++ b/pandas/tests/reshape/merge/test_multi.py @@ -195,6 +195,26 @@ def test_merge_right_vs_left(self, left, right, sort): tm.assert_frame_equal(merged_left_right, merge_right_left) + def test_merge_multiple_cols_with_mixed_cols_index(self): + s = pd.Series( + range(6), + pd.MultiIndex.from_product([["A", "B"], [1, 2, 3]], names=["lev1", "lev2"]), + name="Amount", + ) + df = pd.DataFrame( + {"lev1": list("AAABBB"), "lev2": [1, 2, 3, 1, 2, 3], "col": 0} + ) + result = pd.merge(df, s.reset_index(), on=["lev1", "lev2"]) + expected = pd.DataFrame( + { + "lev1": list("AAABBB"), + "lev2": [1, 2, 3, 1, 2, 3], + "col": [0] * 6, + "Amount": np.arange(6), + } + ) + tm.assert_frame_equal(result, expected) + def test_compress_group_combinations(self): # ~ 40000000 possible unique groups From 49816017b321ed8fa6b7479c656d88769f7f6b7d Mon Sep 17 00:00:00 2001 From: Ryan Nazareth Date: Sun, 10 Nov 2019 13:28:52 +0000 Subject: [PATCH 2/3] Add issue number --- pandas/tests/reshape/merge/test_multi.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pandas/tests/reshape/merge/test_multi.py b/pandas/tests/reshape/merge/test_multi.py index 3c239ad518007..4e16a9146f05a 100644 --- a/pandas/tests/reshape/merge/test_multi.py +++ b/pandas/tests/reshape/merge/test_multi.py @@ -196,6 +196,7 @@ def test_merge_right_vs_left(self, left, right, sort): tm.assert_frame_equal(merged_left_right, merge_right_left) def test_merge_multiple_cols_with_mixed_cols_index(self): + # GH29522 s = pd.Series( range(6), pd.MultiIndex.from_product([["A", "B"], [1, 2, 3]], names=["lev1", "lev2"]), From 3ad34ed311466adb3529500b92d2228768695bbb Mon Sep 17 00:00:00 2001 From: Ryan Nazareth Date: Wed, 13 Nov 2019 01:18:59 +0000 Subject: [PATCH 3/3] Fix CI error --- pandas/tests/reshape/merge/test_multi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/tests/reshape/merge/test_multi.py b/pandas/tests/reshape/merge/test_multi.py index 4e16a9146f05a..bce62571d55ec 100644 --- a/pandas/tests/reshape/merge/test_multi.py +++ b/pandas/tests/reshape/merge/test_multi.py @@ -211,7 +211,7 @@ def test_merge_multiple_cols_with_mixed_cols_index(self): "lev1": list("AAABBB"), "lev2": [1, 2, 3, 1, 2, 3], "col": [0] * 6, - "Amount": np.arange(6), + "Amount": range(6), } ) tm.assert_frame_equal(result, expected)