La función DataFrame.groupby() de la Biblioteca Python Pandas se utiliza para agrupar datos según criterios específicos, así como para realizar diferentes agregaciones y transformaciones en dichos grupos.

Hosting
El hosting como nunca lo habías visto
  • Rápido, seguro, flexible y escalable
  • Certificado SSL/DDoS incluido
  • Dominio y asesor personal incluidos

Sintaxis de la función DataFrame.groupby() de Pandas

La función groupby() acepta hasta cinco parámetros y su sintaxis es la siguiente:

DataFrame.groupby(by=None, level=None, as_index=True, sort=True, group_keys=True, dropna=True)
python

Parámetros relevantes

Parámetro Descripción Valor por defecto
by Clave o lista de claves según las cuales se agruparán los datos. No puede combinarse con level None
level Se utiliza cuando se trabaja con Multi-índices para especificar uno o más niveles, de manera que la agrupación se realice según los niveles especificados None
as_index Si es True, las claves de agrupación se establecen como el índice del DataFrame resultante True
group_keys Si es True, las claves de agrupación se incluyen en los índices de los grupos True
dropna Define si se deben excluir los grupos con valores NaN True

Uso de la función DataFrame.grouby() de Pandas

La función groupyby() de Pandas resulta especialmente útil para identificar patrones o anomalías cuando se desea analizar y resumir grandes volúmenes de datos.

Agrupar y agregar

A continuación, analizamos un conjunto de datos de venta de varios productos en el que se incluye información sobre la fecha de venta, el producto vendido y la cantidad que se ha vendido:

import pandas as pd
# Ejemplo de reporte de ventas
data = {
    'Fecha': ['2021-01-01', '2021-01-01', '2021-01-02', '2021-01-02', '2021-01-03'],
    'Producto': ['A', 'B', 'A', 'B', 'A'],
    'Cantidad': [10, 20, 15, 25, 10]
}
df = pd.DataFrame(data)
print(df)
python

El aspecto del DataFrame resultante es el siguiente:

Fecha  Producto  Cantidad
0  2021-01-01       A     10
1  2021-01-01       B     20
2  2021-01-02       A     15
3  2021-01-02       B     25
4  2021-01-03       A     10

En el siguiente paso, se utiliza la función groupby() de Pandas para agrupar los datos por producto. Después, se calcula la cantidad vendida de cada producto utilizando la función sum():

# Agrupar por producto y calcular la suma de las cantidades vendidas
suma = df.groupby('Producto')['Cantidad'].sum()
print(suma)

El siguiente resultado indica el total de unidades vendidas de cada producto:

Producto
A    35
B    45
Name: Cantidad, dtype: int64

Agregaciones múltiples

En el siguiente ejemplo se utiliza un conjunto de datos similar al anterior, pero más amplio, que también incluye la columna de ingresos:

data = {
    'Fecha': ['2021-01-01', '2021-01-01', '2021-01-02', '2021-01-02', '2021-01-03'],
    'Producto': ['A', 'B', 'A', 'B', 'A'],
    'Cantidad': [10, 20, 15, 25, 10],
    'Ingresos': [100, 200, 150, 250, 100]
}
df = pd.DataFrame(data)
print(df)
python

Se genera el siguiente DataFrame:

Fecha Producto  Cantidad  Ingresos
0  2021-01-01       A     10     100
1  2021-01-01       B     20     200
2  2021-01-02       A     15     150
3  2021-01-02       B     25     250
4  2021-01-03       A     10     100

Se utiliza DataFrame.groupby() de Pandas para volver a agrupar los datos por producto. Después, se utiliza la función agg() para agregar los datos calculando la suma total de las cantidades vendidas, los ingresos totales y el ingreso promedio de cada producto.

# Agrupar por producto y aplicar agregaciones múltiples
grupos = df.groupby('Producto').agg({
    'Cantidad': 'sum',
    'Ingresos': ['sum', 'mean']
})
print(grupos)

El resultado sería el siguiente:

Cantidad    Ingresos        
      sum    sum    mean
Producto             
A      35    350  116.666667
B      45    450  225.000000
¿Le ha resultado útil este artículo?
Ir al menú principal