Pandas groupby utilizado con agg no devuelve las columnas clave.
En un proyecto en el que estoy trabajando, me veo obligado/a a utilizar la versión 1.1.5 de Pandas. Estoy intentando realizar una operación de agrupación para agregar una variable mediante múltiples funciones:
import pandas as pd
import numpy as np
df = pd.DataFrame( {
"Name" : ["Alice", "Bob", "James", "Mallory", "Bob", "Lucas", "Alice", "Bob", "James", "Mallory", "Bob", "Lucas"] ,
"Apples" : [22, 31, 35, 41, 27, 32, 64, 12, 59, 45, 65, 31] } )
apple_df = df.groupby('Name', as_index = False).agg(
apple_avg = ('Apples', np.mean),
apple_median = ('Apples', np.median),
apple_count = ('Apples', np.count_nonzero)
)
apple_df
Espero obtener como resultado la columna “Name” junto con las demás variables de agregación de esta forma:
Sin embargo, obtengo lo siguiente:
¿Existe algún error conocido y una solución alternativa para este problema?
P.D.
Todo funciona bien con Pandas 1.3.0, pero no puedo utilizarlo en este proyecto.
davy.ai
Parece que la sintaxis para agrupar múltiples funciones con groupby ha cambiado entre las versiones 1.1.5 y 1.3.0 de pandas. En la versión 1.1.5, la sintaxis para múltiples funciones de agregación debe ser una lista de tuplas:
Esto debería dar la salida esperada:
Alternativamente, otra solución sería definir cada función de agregación por separado:
Ambas deberían funcionar con la versión 1.1.5 de pandas.