@@ -1491,3 +1491,47 @@ def test_idxmin_idxmax_transform_args(how, skipna, numeric_only):
14911491 msg = f"DataFrameGroupBy.{ how } with skipna=False encountered an NA value"
14921492 with pytest .raises (ValueError , match = msg ):
14931493 gb .transform (how , skipna , numeric_only )
1494+
1495+
1496+ def test_transform_sum_one_column_no_matching_labels ():
1497+ df = DataFrame ({"X" : [1.0 ]})
1498+ series = Series (["Y" ])
1499+ result = df .groupby (series , as_index = False ).transform ("sum" )
1500+ expected = DataFrame ({"X" : [1.0 ]})
1501+ tm .assert_frame_equal (result , expected )
1502+
1503+
1504+ def test_transform_sum_no_matching_labels ():
1505+ df = DataFrame ({"X" : [1.0 , - 93204 , 4935 ]})
1506+ series = Series (["A" , "B" , "C" ])
1507+
1508+ result = df .groupby (series , as_index = False ).transform ("sum" )
1509+ expected = DataFrame ({"X" : [1.0 , - 93204 , 4935 ]})
1510+ tm .assert_frame_equal (result , expected )
1511+
1512+
1513+ def test_transform_sum_one_column_with_matching_labels ():
1514+ df = DataFrame ({"X" : [1.0 , - 93204 , 4935 ]})
1515+ series = Series (["A" , "B" , "A" ])
1516+
1517+ result = df .groupby (series , as_index = False ).transform ("sum" )
1518+ expected = DataFrame ({"X" : [4936.0 , - 93204 , 4936.0 ]})
1519+ tm .assert_frame_equal (result , expected )
1520+
1521+
1522+ def test_transform_sum_one_column_with_missing_labels ():
1523+ df = DataFrame ({"X" : [1.0 , - 93204 , 4935 ]})
1524+ series = Series (["A" , "C" ])
1525+
1526+ result = df .groupby (series , as_index = False ).transform ("sum" )
1527+ expected = DataFrame ({"X" : [1.0 , - 93204 , np .nan ]})
1528+ tm .assert_frame_equal (result , expected )
1529+
1530+
1531+ def test_transform_sum_one_column_with_matching_labels_and_missing_labels ():
1532+ df = DataFrame ({"X" : [1.0 , - 93204 , 4935 ]})
1533+ series = Series (["A" , "A" ])
1534+
1535+ result = df .groupby (series , as_index = False ).transform ("sum" )
1536+ expected = DataFrame ({"X" : [- 93203.0 , - 93203.0 , np .nan ]})
1537+ tm .assert_frame_equal (result , expected )
0 commit comments