Al trabajar con conjuntos de datos en Python, a menudo es necesario agrupar los datos por múltiples columnas para realizar análisis más avanzados. En este artículo, te mostraré cómo agrupar por múltiples columnas en Python de manera sencilla y efectiva.
Utilizando la función groupby de la librería pandas
La librería pandas es una de las herramientas más utilizadas en Python para el análisis de datos. Para agrupar por múltiples columnas en pandas, puedes utilizar la función groupby y pasar una lista con los nombres de las columnas por las cuales deseas agrupar.
«`python
import pandas as pd
# Crear un DataFrame de ejemplo
data = {‘A’: [‘foo’, ‘bar’, ‘foo’, ‘bar’],
‘B’: [‘one’, ‘one’, ‘two’, ‘two’],
‘C’: [1, 2, 3, 4]}
df = pd.DataFrame(data)
# Agrupar por las columnas ‘A’ y ‘B’ y calcular la suma de la columna ‘C’
grouped = df.groupby([‘A’, ‘B’]).sum()
print(grouped)
«`
En el código anterior, estamos agrupando el DataFrame por las columnas ‘A’ y ‘B’ y calculando la suma de la columna ‘C. El resultado será un nuevo DataFrame con los datos agrupados.
Utilizando la función groupby de la librería itertools
Si prefieres no utilizar la librería pandas, también puedes agrupar por múltiples columnas en Python utilizando la función groupby de la librería itertools.
«`python
from itertools import groupby
# Crear una lista de tuplas de ejemplo
data = [(‘foo’, ‘one’, 1),
(‘bar’, ‘one’, 2),
(‘foo’, ‘two’, 3),
(‘bar’, ‘two’, 4)]
# Ordenar la lista por las columnas ‘A’ y ‘B’
data.sort(key=lambda x: (x[0], x[1]))
# Agrupar por las columnas ‘A’ y ‘B’ y calcular la suma de la columna ‘C’
grouped = [(key, sum(item[2] for item in values)) for key, values in groupby(data, lambda x: (x[0], x[1]))]
print(grouped)
«`
En este ejemplo, estamos agrupando una lista de tuplas por las columnas ‘A’ y ‘B’ y calculando la suma de la columna ‘C. El resultado será una lista de tuplas con los datos agrupados.
Como puedes ver, agrupar por múltiples columnas en Python es una tarea sencilla con las herramientas adecuadas. Ya sea utilizando la librería pandas o la librería itertools, puedes realizar análisis avanzados de tus datos de manera efectiva.