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.