Agregue usando una o más operaciones sobre el eje especificado.
- Parámetros
-
- func : función, str, list o dict
-
Función que se utilizará para agregar los datos. Si es una función, debe funcionar cuando se pasa un DataFrame o cuando se pasa a DataFrame.apply.
Las combinaciones aceptadas son:
-
función
-
string nombre de la función
-
lista de funciones y / o nombres de funciones, p. ej. [np.sum,'mean']
-
dictado de etiquetas de eje -> funciones, nombres de funciones o lista de los mismos.
También puede aceptar una función Numba JIT con engine='numba'
especificado. Este motor solo admite el paso de una única función.
Si el 'numba'
se elige el motor, la función debe ser una función definida por el usuario con values
y index
como primer y segundo argumento respectivamente en la firma de la función. El índice de cada grupo se pasará a la función definida por el usuario y, opcionalmente, estará disponible para su uso.
Modificado en la versión 1.1.0.
- * argumentos
-
Argumentos posicionales para pasar a func.
- motor : str, predeterminado Ninguno
-
-
'cython'
: Ejecuta la función a través de extensiones C de cython.
-
'numba'
: Ejecuta la función a través del código compilado JIT de numba.
-
None
: Predeterminado en 'cython'
o configuración global compute.use_numba
Nuevo en la versión 1.1.0.
- engine_kwargs : dict, predeterminado Ninguno
-
-
Para 'cython'
motor, no se aceptan engine_kwargs
-
Para 'numba'
motor, el motor puede aceptar nopython
, nogil
y parallel
diccionario keys. Los valores deben ser True
o False
. El valor por defecto engine_kwargs
Para el 'numba'
el motor es 'nopython':True,'nogil':False,'parallel':False
y se aplicará a la función
Nuevo en la versión 1.1.0.
- ** kwargs
-
Argumentos de palabras clave que se pasarán a func.
- Devoluciones
-
- Marco de datos
Ver también
DataFrame.groupby.apply
-
Aplique la función func de forma grupal y combine los resultados.
DataFrame.groupby.transform
-
Agregue usando una o más operaciones sobre el eje especificado.
DataFrame.aggregate
-
Transforma la Serie en cada grupo según la función dada.
Notas
Cuando usas engine='numba'
, no habrá comportamiento de “retroceso” internamente. Los datos del grupo y el índice del grupo se pasarán como matrices numerosas a la función definida por el usuario JITed, y no se intentarán intentos de ejecución alternativos.
Ejemplos de
>>> df = pd.DataFrame(......"A":[1,1,2,2],..."B":[1,2,3,4],..."C":[0.362838,0.227877,1.267767,-0.562860],......)
>>> df
A B C
0110.3628381120.2278772231.267767324-0.562860
La agregación es para cada columna.
>>> df.groupby('A').agg('min')
B C
A
110.22787723-0.562860
Varias agregaciones
>>> df.groupby('A').agg(['min','max'])
B C
minmaxminmax
A
1120.2278770.362838234-0.5628601.267767
Seleccione una columna para la agregación
>>> df.groupby('A').B.agg(['min','max'])minmax
A
112234
Diferentes agregaciones por columna
>>> df.groupby('A').agg('B':['min','max'],'C':'sum')
B C
minmaxsum
A
1120.5907152340.704907
Para controlar los nombres de salida con diferentes agregaciones por columna, pandas admite la “agregación con nombre”
>>> df.groupby("A").agg(... b_min=pd.NamedAgg(column="B", aggfunc="min"),... c_sum=pd.NamedAgg(column="C", aggfunc="sum"))
b_min c_sum
A
110.590715230.704907
-
Las palabras clave son las producción nombres de columna
-
Los valores son tuplas cuyo primer elemento es la columna a seleccionar y el segundo elemento es la agregación a aplicar a esa columna. Pandas proporciona el pandas.NamedAgg
namedtuple con los campos ['column','aggfunc']
para aclarar cuáles son los argumentos. Como de costumbre, la agregación puede ser invocable o string alias.
Ver Agregación con nombre para más.