Skip to content

Commit 84e17aa

Browse files
author
Diego Torres Quintanilla
committed
BUG: fix groupby.transform rename bug (#23461)
1 parent 2eef865 commit 84e17aa

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

pandas/core/groupby/generic.py

+2
Original file line numberDiff line numberDiff line change
@@ -583,6 +583,8 @@ def _choose_path(self, fast_path, slow_path, group):
583583
try:
584584
res_fast = fast_path(group)
585585

586+
if res_fast.columns != group.columns:
587+
return path, res
586588
# compare that we get the same results
587589
if res.shape == res_fast.shape:
588590
res_r = res.values.ravel()

pandas/tests/groupby/test_groupby.py

+20
Original file line numberDiff line numberDiff line change
@@ -1700,3 +1700,23 @@ def test_groupby_agg_ohlc_non_first():
17001700
result = df.groupby(pd.Grouper(freq='D')).agg(['sum', 'ohlc'])
17011701

17021702
tm.assert_frame_equal(result, expected)
1703+
1704+
def test_groupby_transform_rename():
1705+
# https://github.com/pandas-dev/pandas/issues/23461
1706+
def demean_rename(x):
1707+
result = x - x.mean()
1708+
1709+
if isinstance(x, pd.Series):
1710+
return result
1711+
1712+
result = result.rename(columns=
1713+
{c: '{}_demeaned'.format(c) for c in result.columns})
1714+
1715+
return result
1716+
1717+
df = pd.DataFrame({'group': list('ababa'),
1718+
'value': [1, 1, 1, 2, 2]})
1719+
expected = pd.DataFrame({'value': [-1./3., -0.5, -1./3., 0.5, 2./3.]})
1720+
1721+
result = df.groupby('group').transform(demean_rename)
1722+
tm.assert_frame_equal(result, expected)

0 commit comments

Comments
 (0)