From 6c9cd1ee517d55fb7f013404fa3ac7ab2645a6e8 Mon Sep 17 00:00:00 2001 From: Thomas Dickson Date: Tue, 8 Sep 2020 22:06:09 +0100 Subject: [PATCH 1/3] TST GH 29699 add test to check multilevel column is called after multiple appends --- pandas/tests/test_multilevel.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/pandas/tests/test_multilevel.py b/pandas/tests/test_multilevel.py index 274860b3fdb5c..7844486cdc583 100644 --- a/pandas/tests/test_multilevel.py +++ b/pandas/tests/test_multilevel.py @@ -1697,6 +1697,23 @@ def test_reset_index_multiindex_columns(self): result = df2.rename_axis([("c", "ii")]).reset_index(col_level=1, col_fill="C") tm.assert_frame_equal(result, expected) + def test_multilevel_multiple_append(self): + #  GH 29699 + df = pd.DataFrame({"col1": [1, 2, 3], "col2": [11, 12, 13]}) + df = pd.concat([df], keys=["multi"], names=["level1"], axis=1) + + # catch warning from not specifying sort + with tm.assert_produces_warning(RuntimeWarning): + for i in range(10): + df[i, "colA"] = 10 + a = pd.DataFrame({"col1": [1, 2, 3], "col2": [11, 12, 13]}) + a = pd.concat([a], keys=["multi"], names=["level1"], axis=1) + df = df.append(a, ignore_index=True) + + result = df["multi"] + expected = pd.DataFrame({"col1": [1, 2, 3] * 11, "col2": [11, 12, 13] * 11}) + tm.assert_frame_equal(result, expected) + def test_set_index_period(self): # GH 6631 df = DataFrame(np.random.random(6)) From 2061654de23349a511a03c975403124bd9dcfa30 Mon Sep 17 00:00:00 2001 From: Thomas Dickson Date: Wed, 9 Sep 2020 00:12:28 +0100 Subject: [PATCH 2/3] reviewer comments to move test location and use sort=False --- pandas/tests/reshape/test_concat.py | 16 ++++++++++++++++ pandas/tests/test_multilevel.py | 16 ---------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/pandas/tests/reshape/test_concat.py b/pandas/tests/reshape/test_concat.py index 38cf2cc2402a1..8be658c4b7cf3 100644 --- a/pandas/tests/reshape/test_concat.py +++ b/pandas/tests/reshape/test_concat.py @@ -1462,6 +1462,22 @@ def test_concat_rename_index(self): tm.assert_frame_equal(result, exp) assert result.index.names == exp.index.names + def test_concat_multiple_append(self): + #  GH 29699 + df = pd.DataFrame({"col1": [1, 2, 3], "col2": [11, 12, 13]}) + df = pd.concat([df], keys=["multi"], names=["level1"], axis=1, sort=False) + + # catch warning from not specifying sort + for i in range(10): + df[i, "colA"] = 10 + a = pd.DataFrame({"col1": [1, 2, 3], "col2": [11, 12, 13]}) + a = pd.concat([a], keys=["multi"], names=["level1"], axis=1, sort=False) + df = df.append(a, ignore_index=True) + + result = df["multi"] + expected = pd.DataFrame({"col1": [1, 2, 3] * 11, "col2": [11, 12, 13] * 11}) + tm.assert_frame_equal(result, expected) + def test_crossed_dtypes_weird_corner(self): columns = ["A", "B", "C", "D"] df1 = DataFrame( diff --git a/pandas/tests/test_multilevel.py b/pandas/tests/test_multilevel.py index 7844486cdc583..4e56cec37f904 100644 --- a/pandas/tests/test_multilevel.py +++ b/pandas/tests/test_multilevel.py @@ -1697,22 +1697,6 @@ def test_reset_index_multiindex_columns(self): result = df2.rename_axis([("c", "ii")]).reset_index(col_level=1, col_fill="C") tm.assert_frame_equal(result, expected) - def test_multilevel_multiple_append(self): - #  GH 29699 - df = pd.DataFrame({"col1": [1, 2, 3], "col2": [11, 12, 13]}) - df = pd.concat([df], keys=["multi"], names=["level1"], axis=1) - - # catch warning from not specifying sort - with tm.assert_produces_warning(RuntimeWarning): - for i in range(10): - df[i, "colA"] = 10 - a = pd.DataFrame({"col1": [1, 2, 3], "col2": [11, 12, 13]}) - a = pd.concat([a], keys=["multi"], names=["level1"], axis=1) - df = df.append(a, ignore_index=True) - - result = df["multi"] - expected = pd.DataFrame({"col1": [1, 2, 3] * 11, "col2": [11, 12, 13] * 11}) - tm.assert_frame_equal(result, expected) def test_set_index_period(self): # GH 6631 From 00c24482e458fc175cb90bbc88eb6522db3f7d98 Mon Sep 17 00:00:00 2001 From: Thomas Dickson Date: Wed, 9 Sep 2020 00:22:57 +0100 Subject: [PATCH 3/3] forgot black --- pandas/tests/test_multilevel.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pandas/tests/test_multilevel.py b/pandas/tests/test_multilevel.py index 4e56cec37f904..274860b3fdb5c 100644 --- a/pandas/tests/test_multilevel.py +++ b/pandas/tests/test_multilevel.py @@ -1697,7 +1697,6 @@ def test_reset_index_multiindex_columns(self): result = df2.rename_axis([("c", "ii")]).reset_index(col_level=1, col_fill="C") tm.assert_frame_equal(result, expected) - def test_set_index_period(self): # GH 6631 df = DataFrame(np.random.random(6))