@@ -1491,3 +1491,47 @@ def test_idxmin_idxmax_transform_args(how, skipna, numeric_only):
1491
1491
msg = f"DataFrameGroupBy.{ how } with skipna=False encountered an NA value"
1492
1492
with pytest .raises (ValueError , match = msg ):
1493
1493
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