Búsqueda de sitios web

Cómo utilizar groupby para agrupación y agregación avanzada de datos en Pandas


Aprenda a realizar agrupaciones y agregaciones avanzadas en Pandas.

Aprendamos a realizar agrupaciones y agregaciones en Pandas.

Preparación

Necesitaríamos tener instalados los paquetes de Pandas, por lo que podemos instalarlos usando el siguiente código:

pip install pandas

Con los paquetes instalados, subamos al artículo.

Agrupación de datos y agregación con pandas

La información en los datos a veces puede ser demasiado grande y compleja para consumir. Es por eso que a menudo realizamos agrupación y agregación para obtener información concisa. Un solo número o conjunto de valores puede proporcionar información mucho más detallada que todo el conjunto de datos.

Intentemos realizar la agrupación de datos. Primero, crearíamos un conjunto de datos de muestra.

import pandas as pd

df = pd.DataFrame({
    'Fruit': ['Banana', 'Orange', 'Banana', 'Orange', 'Banana'],
     'Size': ['Small', 'Small', 'Large', 'Large', 'Small'],              
     'Price': [100, 150, 200, 50, 300]})

Podemos usar la función groupby para agrupar los datos.

df.groupby('Fruit')

También es posible agrupar los datos con múltiples columnas.

df.groupby(['Fruit', 'Size'])

Eso es todo por la agrupación de datos. Ahora, probaríamos la función de agregación con los datos agrupados. Por ejemplo, usaríamos varias columnas para cada grupo e intentaríamos sumar todos los valores de cada grupo.

df.groupby(['Fruit', 'Size']).sum()

Producción :

             Price
Fruit  Size        
Banana Large    200
       Small    400
Orange Large     50
       Small    150

También podemos realizar múltiples agregaciones de nuestros datos agrupados.

df.groupby(['Fruit', 'Size']).agg(['sum', 'mean', 'count'])

Producción :

            Price             
               sum   mean count
Fruit  Size                    
Banana Large   200  200.0     1
       Small   400  200.0     2
Orange Large    50   50.0     1
       Small   150  150.0     1

Si es necesario, podemos realizar diferentes métodos de agregación en diferentes columnas. Podemos mapearlos así.

aggs= {
    'Price': ['sum', 'mean'],
    'Size': ['count']
}
df.groupby('Fruit').agg(aggs)

Producción :

      Price         Size
         sum   mean count
Fruit                    
Banana   600  200.0     3
Orange   200  100.0     2

Podemos crear nuestra función de agregación y usarla en los datos agrupados.

def maxminrange(series):
    return series.max() - series.min()
df.groupby('Fruit')['Price'].agg(maxminrange)

Producción :

Fruit
Banana    200
Orange    100

Así es como realizas una agrupación y agregación avanzadas. Dominar estas técnicas lo ayudará enormemente durante el análisis de datos.