From 75e9ebedab50fc8e1cb45d1a34bfad902220994a Mon Sep 17 00:00:00 2001 From: zMendes <38051204+zMendes@users.noreply.github.com> Date: Tue, 26 Oct 2021 22:14:56 -0300 Subject: [PATCH 1/2] TST: test_join_multiindex_dates --- pandas/tests/frame/methods/test_join.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/pandas/tests/frame/methods/test_join.py b/pandas/tests/frame/methods/test_join.py index 30118d20f67a9..5bb8d157b66c7 100644 --- a/pandas/tests/frame/methods/test_join.py +++ b/pandas/tests/frame/methods/test_join.py @@ -323,6 +323,29 @@ def test_join_multiindex_leftright(self): tm.assert_frame_equal(df1.join(df2, how="right"), exp) tm.assert_frame_equal(df2.join(df1, how="left"), exp[["value2", "value1"]]) + def test_join_multiindex_dates(self): + # GH 33692 + date = pd.Timestamp(2000, 1, 1).date() + + # creates dataframes + df1 = DataFrame({"index_0": 0, "date": date, "col1": [0]}) + df2 = DataFrame({"index_0": 0, "date": date, "col2": [0]}) + df1 = df1.groupby(by=["index_0", "date"]).first() + df2 = df2.groupby(by=["index_0", "date"]).first() + + multi_index = MultiIndex.from_tuples([(0, date)], names=["index_0", "date"]) + df3 = DataFrame(index=multi_index, columns=["col3"], data=[0]) + + expected = ( + DataFrame( + {"index_0": 0, "date": date, "col1": [0], "col2": [0], "col3": [0]} + ) + .groupby(by=["index_0", "date"]) + .first() + ) + result = df1.join([df2, df3]) + tm.assert_equal(result, expected) + def test_merge_join_different_levels(self): # GH#9455 From f8fd4e4329276d139fcfd4d61475477f602ff18e Mon Sep 17 00:00:00 2001 From: zMendes <38051204+zMendes@users.noreply.github.com> Date: Wed, 27 Oct 2021 00:06:07 -0300 Subject: [PATCH 2/2] Removed unecessary methods from test --- pandas/tests/frame/methods/test_join.py | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/pandas/tests/frame/methods/test_join.py b/pandas/tests/frame/methods/test_join.py index 5bb8d157b66c7..3e06b96b1cb07 100644 --- a/pandas/tests/frame/methods/test_join.py +++ b/pandas/tests/frame/methods/test_join.py @@ -328,23 +328,14 @@ def test_join_multiindex_dates(self): date = pd.Timestamp(2000, 1, 1).date() # creates dataframes - df1 = DataFrame({"index_0": 0, "date": date, "col1": [0]}) - df2 = DataFrame({"index_0": 0, "date": date, "col2": [0]}) - df1 = df1.groupby(by=["index_0", "date"]).first() - df2 = df2.groupby(by=["index_0", "date"]).first() + df1 = DataFrame({"index_0": int(0), "date": date, "col1": [2]}) + df2 = DataFrame({"col2": [3]}) multi_index = MultiIndex.from_tuples([(0, date)], names=["index_0", "date"]) - df3 = DataFrame(index=multi_index, columns=["col3"], data=[0]) + df3 = DataFrame(index=multi_index, columns=["col3"], data=[4]) - expected = ( - DataFrame( - {"index_0": 0, "date": date, "col1": [0], "col2": [0], "col3": [0]} - ) - .groupby(by=["index_0", "date"]) - .first() - ) - result = df1.join([df2, df3]) - tm.assert_equal(result, expected) + # if fails, raises error + df1.join([df2, df3]) def test_merge_join_different_levels(self): # GH#9455