Dado el siguiente ejemplo (totalmente exageración) trama de datosPython pandas: Múltiples agregaciones de la misma columna
df = pandas.DataFrame({
"date":[datetime.date(2012,x,1) for x in range(1,11)],
"returns":0.05*np.random.randn(10),
"dummy":np.repeat(1,10)
})
hay una manera incorporada existente para aplicar dos funciones de agregación diferentes para la misma columna, sin tener llamar al agg
varias veces?
El sintácticamente mal, pero intuitivamente correcto, forma de hacerlo sería:
# Assume `function1` and `function2` are defined for aggregating.
df.groupby("dummy").agg({"returns":function1, "returns":function2})
Obviamente, Python no permite duplicados de las llaves. ¿Hay alguna otra forma de expresar la entrada al agg
? Tal vez una lista de tuplas [(column, function)]
funcionaría mejor, para permitir múltiples funciones aplicadas a la misma columna? Pero parece que solo acepta un diccionario.
¿Hay una solución para esto además de definir una función auxiliar que solo aplica las dos funciones dentro de ella? (¿Cómo este trabajo con la agregación de todos modos?)
¿Hay alguna forma de especificar los nombres de las columnas de resultados? – Ben
@Ben Creo que debes usar un cambio de nombre después. [ejemplo de Tom Augspurger (vea la celda 25)] (http://nbviewer.ipython.org/gist/TomAugspurger/6e052140eaa5fdb6e8c0) –
@Ben: Agregué un ejemplo – bmu