From ff2fc39594f79f1d8a028d27cfb5d2ccc0e20aed Mon Sep 17 00:00:00 2001 From: Lakmal Pinnaduwage Date: Mon, 5 Dec 2022 20:38:58 -0500 Subject: [PATCH 1/3] test: Add test for groupby aggregatation with nested dictionary --- pandas/tests/groupby/aggregate/test_aggregate.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pandas/tests/groupby/aggregate/test_aggregate.py b/pandas/tests/groupby/aggregate/test_aggregate.py index 03b917edd357b..dc4bc255f5329 100644 --- a/pandas/tests/groupby/aggregate/test_aggregate.py +++ b/pandas/tests/groupby/aggregate/test_aggregate.py @@ -467,6 +467,14 @@ def test_groupby_agg_coercing_bools(): expected = Series([True, False], index=index, name="c") tm.assert_series_equal(result, expected) +def test_groupby_agg_nested_dictionary(): + # issue 25471 + dat = DataFrame({"A":['A','A','B','B','B'],"B":[1,2,1,1,2]}) + result = dat.groupby('A')[['B']].agg({'B':'sum'}) + + expected = DataFrame({"B": [3, 4]}, index=["A", "B"]).rename_axis("A", axis=0) + + tm.assert_frame_equal(result, expected) @pytest.mark.parametrize( "op", From 0a0f366a84b7f81f15c7ad8f28ea85e18a962ae1 Mon Sep 17 00:00:00 2001 From: talukder-sowrov Date: Tue, 6 Dec 2022 21:36:11 -0500 Subject: [PATCH 2/3] Ran pre-commits check to resolve build fail. --- pandas/tests/groupby/aggregate/test_aggregate.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pandas/tests/groupby/aggregate/test_aggregate.py b/pandas/tests/groupby/aggregate/test_aggregate.py index dc4bc255f5329..168b34e67c9af 100644 --- a/pandas/tests/groupby/aggregate/test_aggregate.py +++ b/pandas/tests/groupby/aggregate/test_aggregate.py @@ -467,15 +467,17 @@ def test_groupby_agg_coercing_bools(): expected = Series([True, False], index=index, name="c") tm.assert_series_equal(result, expected) + def test_groupby_agg_nested_dictionary(): # issue 25471 - dat = DataFrame({"A":['A','A','B','B','B'],"B":[1,2,1,1,2]}) - result = dat.groupby('A')[['B']].agg({'B':'sum'}) + dat = DataFrame({"A": ["A", "A", "B", "B", "B"], "B": [1, 2, 1, 1, 2]}) + result = dat.groupby("A")[["B"]].agg({"B": "sum"}) expected = DataFrame({"B": [3, 4]}, index=["A", "B"]).rename_axis("A", axis=0) tm.assert_frame_equal(result, expected) + @pytest.mark.parametrize( "op", [ From 502e319a049a58bfe6485a2bf6f4f76b82579caf Mon Sep 17 00:00:00 2001 From: talukder-sowrov Date: Thu, 8 Dec 2022 13:25:09 -0500 Subject: [PATCH 3/3] Change test name. --- pandas/tests/groupby/aggregate/test_aggregate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/tests/groupby/aggregate/test_aggregate.py b/pandas/tests/groupby/aggregate/test_aggregate.py index 168b34e67c9af..1c37770f3a2b4 100644 --- a/pandas/tests/groupby/aggregate/test_aggregate.py +++ b/pandas/tests/groupby/aggregate/test_aggregate.py @@ -468,7 +468,7 @@ def test_groupby_agg_coercing_bools(): tm.assert_series_equal(result, expected) -def test_groupby_agg_nested_dictionary(): +def test_groupby_agg_dict_with_getitem(): # issue 25471 dat = DataFrame({"A": ["A", "A", "B", "B", "B"], "B": [1, 2, 1, 1, 2]}) result = dat.groupby("A")[["B"]].agg({"B": "sum"})