BUG: groupby.transform length mismatch under certain specifications · Issue #9697 · pandas-dev/pandas (original) (raw)

import numpy as np
df = pd.DataFrame({'col1':[1,1,2,2], 'col2':[1,2,3,np.nan]})

# Works fine
df.groupby('col1').transform(sum)['col2']

# Throws error
df.groupby('col1')['col2'].transform(sum)
  File "<ipython-input-7-f969e26273d4>", line 8, in <module>
    df.groupby('col1')['col2'].transform(sum)

  File "/Users/Nick/GitHub/pandas/pandas/core/groupby.py", line 2418, in transform
    return self._transform_fast(cyfunc)

  File "/Users/Nick/GitHub/pandas/pandas/core/groupby.py", line 2459, in _transform_fast
    return self._set_result_index_ordered(Series(values))

  File "/Users/Nick/GitHub/pandas/pandas/core/groupby.py", line 497, in _set_result_index_ordered
    result.index = self.obj.index

  File "/Users/Nick/GitHub/pandas/pandas/core/generic.py", line 2061, in __setattr__
    return object.__setattr__(self, name, value)

  File "pandas/src/properties.pyx", line 65, in pandas.lib.AxisProperty.__set__ (pandas/lib.c:41404)
    obj._set_axis(self.axis, value)

  File "/Users/Nick/GitHub/pandas/pandas/core/series.py", line 268, in _set_axis
    self._data.set_axis(axis, labels)

  File "/Users/Nick/GitHub/pandas/pandas/core/internals.py", line 2211, in set_axis
    'new values have %d elements' % (old_len, new_len))

ValueError: Length mismatch: Expected axis has 3 elements, new values have 4 elements