-  
-   Notifications  You must be signed in to change notification settings 
- Fork 19.2k
Open
Labels
Description
Feature Type
-  Adding new functionality to pandas 
-  Changing existing functionality in pandas 
-  Removing existing functionality in pandas 
Problem Description
This part of the API seems inconsistent:
In [24]: df = pd.DataFrame({"group": list("aab"), "val1": range(3)}) In [28]: def n_between(ser, low, high): ...: return ser.between(low, high).sum() ...: In [29]: df.groupby("group")["val1"].agg(n_between, 0, 1) # works Out[29]: group a 2 b 0 Name: val1, dtype: int64 In [30]: df.groupby("group").agg(n_between=pd.NamedAgg("val1", n_between, 0, 1)) --------------------------------------------------------------------------- TypeError Traceback (most recent call last) Cell In[30], line 1 ----> 1 df.groupby("group").agg(n_between=pd.NamedAgg("val1", n_between, 0, 1)) TypeError: NamedAgg.__new__() takes 3 positional arguments but 5 were givenFeature Description
NamedAgg should forward along *args and **kwargs just like the normal callable function application can
Alternative Solutions
status quo
Additional Context
No response