Skip to content

Commit e8ae75f

Browse files
committed
Tests
1 parent 7108a9f commit e8ae75f

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

pandas/tests/groupby/transform/test_transform.py

+40
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@
1919
date_range,
2020
)
2121
import pandas._testing as tm
22+
from pandas.core.groupby import (
23+
DataFrameGroupBy,
24+
NamedAgg,
25+
)
2226
from pandas.tests.groupby import get_groupby_method_args
2327

2428

@@ -84,6 +88,42 @@ def demean(arr):
8488
tm.assert_frame_equal(result, expected)
8589

8690

91+
def test_transform_with_namedagg():
92+
df = DataFrame({"A": list("aaabbbccc"), "B": range(9), "D": range(9, 18)})
93+
result = df.groupby("A").transform(
94+
b_min=NamedAgg(column="B", aggfunc="min"),
95+
d_sum=NamedAgg(column="D", aggfunc="sum"),
96+
)
97+
expected = DataFrame(
98+
{
99+
"b_min": [0, 0, 0, 3, 3, 3, 6, 6, 6],
100+
"d_sum": [30, 30, 30, 39, 39, 39, 48, 48, 48],
101+
}
102+
)
103+
tm.assert_frame_equal(result, expected)
104+
105+
106+
def test_transform_with_list_like():
107+
df = DataFrame({"col": list("aab"), "val": range(3)})
108+
result = df.groupby("col").transform(["sum", "min"])
109+
expected = DataFrame({"val_sum": [1, 1, 2], "val_min": [0, 0, 2]})
110+
expected.columns = MultiIndex.from_tuples([("val", "sum"), ("val", "min")])
111+
tm.assert_frame_equal(result, expected)
112+
113+
114+
def test_named_agg_to_dict():
115+
named_agg_items = [
116+
("b_min", (NamedAgg(column="B", aggfunc="min"))),
117+
("d_sum", (NamedAgg(column="D", aggfunc="sum"))),
118+
]
119+
result = DataFrameGroupBy._named_agg_to_dict(*named_agg_items)
120+
expected = {
121+
"b_min": NamedAgg(column="B", aggfunc="min"),
122+
"d_sum": NamedAgg(column="D", aggfunc="sum"),
123+
}
124+
assert result == expected
125+
126+
87127
def test_transform_fast():
88128
df = DataFrame(
89129
{

0 commit comments

Comments
 (0)