diff --git a/pandas/tests/groupby/aggregate/test_aggregate.py b/pandas/tests/groupby/aggregate/test_aggregate.py index 2ab553434873c..4932f77ec0908 100644 --- a/pandas/tests/groupby/aggregate/test_aggregate.py +++ b/pandas/tests/groupby/aggregate/test_aggregate.py @@ -62,6 +62,26 @@ def test_agg_ser_multi_key(df): tm.assert_series_equal(results, expected) +def test_agg_different_partials(): + # GH 28570 + + quant50 = partial(np.percentile, q=50) + quant50.__name__ = "quant50" + quant70 = partial(np.percentile, q=70) + quant70.__name__ = "quant70" + + df = pd.DataFrame({"col1": ["a", "a", "b", "b", "b"], "col2": [1, 2, 3, 4, 5]}) + result = df.groupby("col1").agg({"col2": [quant50, quant70]}) + + expected = pd.DataFrame( + {"col1": ["a", "b"], "quant50": [1.5, 4.0], "quant70": [1.7, 4.4]} + ) + expected = expected.set_index("col1") + expected.columns = pd.MultiIndex.from_product([["col2"], expected.columns]) + + tm.assert_frame_equal(result, expected) + + def test_groupby_aggregation_mixed_dtype(): # GH 6212 expected = DataFrame(