pandas: GroupBy .pipe () vs .apply ()
En el ejemplo de ladocumentación de pandas sobre lo nuevo.pipe()
método para objetos GroupBy, un.apply()
El método que acepta el mismo lambda devolvería los mismos resultados.
In [195]: import numpy as np
In [196]: n = 1000
In ,[197]: df = pd.DataFrame({'Store': np.random.choice(['Store_1', 'Store_2'], n),
.....: 'Product': np.random.choice(['Product_1', 'Product_2', 'Product_3'], n),
.....: 'Revenue': (np.random.random(n)*50+10).round(2),
.....: 'Quantity': np.random.randint(1, 10, size=n)})
In [199]: (df.groupby(['Store', 'Product'])
.....: .pipe(lambda grp: grp.Revenue.sum()/grp.Quantity.sum())
.....: .unstack().round(2))
Out[199]:
Product Product_1 Product_2 Product_3
Store
Store_1 6.93 6.82 7.15
Store_2 6.69 6.64 6.77
Puedo ver comopipe
la funcionalidad difiere deapply
para objetos DataFrame, pero no para objetos GroupBy. ¿Alguien tiene una explicación o ejemplos de lo que se puede hacer conpipe
pero no conapply
para un grupo