ENH: allow 'pad', 'backfill' and 'cumcount' in groupby.transform · Issue #31269 · pandas-dev/pandas (original) (raw)
Summary
Currently on master, groupby.transform
with func
equals one of ('fillna', 'pad', 'backfill', 'ffill', etc.)
yields wrong results (See #30918).
With updates from PR (#31101), the incorrect outputs are fixed. However, when func
is one of ('pad', 'backfill', 'cumcout')
, groupby.transform
then raises AttributeError
similar to what's reported in #27472.
Code Sample
On branch of PR31101
pd.version '1.0.0rc0+162.g56c70234e'
df = pd.DataFrame( ... { ... "A": ["foo", "foo", "foo", "foo", "bar", "bar", "baz"], ... "B": [1, 2, np.nan, 3, 3, np.nan, 4], ... } ... )
df A B 0 foo 1.0 1 foo 2.0 2 foo NaN 3 foo 3.0 4 bar 3.0 5 bar NaN 6 baz 4.0
df.groupby("A").pad() # This is ok B 0 1.0 1 2.0 2 2.0 3 3.0 4 3.0 5 3.0 6 4.0
df.groupby("A").transform("pad") # This raises AttributeError Traceback (most recent call last): ... ... AttributeError: 'Series' object has no attribute 'pad'
df.groupby("A").transform("cumcount") Traceback (most recent call last): ... ... AttributeError: 'Series' object has no attribute 'cumcount'
Ideally we want to allow all of the above 3 functions in groupby.transform