Cómo agrupar por múltiples columnas en Python – Resuelto

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.

Rodrigo Olivares
Rodrigo Olivares

Rodrigo Olivares es un Ingeniero en Informática y estratega web que comparte en su canal de YouTube y en sus sitios web personales mas de 15 años de experiencia trabajando en diseño de sitios web, SEO, monetización e Inteligencia Artificial (IA)

Artículos: 554