Skip to content

Commit 5fe0297

Browse files
committed
TST: Add test for col names during groupby().agg()
Column names should consistently be retained when using df.groupby().agg()
1 parent 1530210 commit 5fe0297

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

pandas/tests/groupby/aggregate/test_aggregate.py

+32
Original file line numberDiff line numberDiff line change
@@ -1274,3 +1274,35 @@ def func(ser):
12741274

12751275
expected = DataFrame([[1.0]], index=[1])
12761276
tm.assert_frame_equal(res, expected)
1277+
1278+
1279+
def test_groupby_agg_column_names():
1280+
# GH42332
1281+
1282+
df = DataFrame(columns=["id1", "id2", "time", "values"], dtype="int").groupby(
1283+
["id1", "id2"]
1284+
)
1285+
1286+
df_sum_idx = df.sum().index.names
1287+
1288+
df_agg1_idx = df.agg(
1289+
**{"start": pd.NamedAgg(column="time", aggfunc="min")}
1290+
).index.names
1291+
1292+
df_agg2_idx = df.agg(
1293+
**{
1294+
"start": pd.NamedAgg(column="time", aggfunc="min"),
1295+
"peak_time": pd.NamedAgg(column="values", aggfunc="idxmax"),
1296+
}
1297+
).index.names
1298+
1299+
df_agg3_idx = df.agg(
1300+
**{"peak_time": pd.NamedAgg(column="values", aggfunc="idxmax")}
1301+
).index.names
1302+
1303+
expected = ["id1", "id2"]
1304+
1305+
assert df_sum_idx == expected
1306+
assert df_agg1_idx == expected
1307+
assert df_agg2_idx == expected
1308+
assert df_agg3_idx == expected

0 commit comments

Comments
 (0)