En ciencia de datos, no siempre trabajamos con variables limpias o perfectamente preparadas. A menudo necesitamos transformarlas para extraer patrones, visualizar mejor o alimentar modelos de aprendizaje automático. En este artículo aprenderás dos técnicas fundamentales dentro del preprocesamiento y transformación de datos:
- Agrupar (discretizar) datos numéricos en categorías o intervalos.
- Combinar (contraer) categorías en variables categóricas.
Estas operaciones son herramientas simples pero poderosas que te ayudarán a simplificar, resumir y mejorar tus análisis y visualizaciones.
¿Qué es la Agrupación (Binning) de Datos Numéricos?
La agrupación o discretización consiste en transformar una variable numérica continua (por ejemplo, la edad) en categorías o intervalos. Por ejemplo, en lugar de analizar cada edad individualmente (22, 23, 24…), podríamos clasificar a las personas en grupos como:
- 20–29 años → Jóvenes adultos
- 30–39 años → Adultos
- 40–49 años → Edad media
Esta técnica se conoce como binning (de “bins”, que significa “contenedores”).
Es muy común en análisis exploratorio, estadística descriptiva y visualización.
¿Por qué agrupar datos?
Existen varias razones por las que discretizar variables puede ser útil:
- Simplifica los datos → Menos categorías, más fácil de interpretar.
- Facilita visualizaciones → Histogramas y gráficos de barras más claros.
- Reduce el ruido → Los pequeños cambios dejan de ser relevantes.
- Mejora algunos modelos → Ciertos algoritmos funcionan mejor con categorías discretas (como árboles de decisión).
En entornos como finanzas o marketing, agrupar variables continuas es habitual:
- Rangos de ingresos (bajo, medio, alto).
- Rangos de edad (jóvenes, adultos, mayores).
- Niveles de gasto o frecuencia de compra.
Ejemplo: Agrupación de edades
Supongamos que tenemos los datos de los alumnos de una clase de baile:
import pandas as pd
dance_class = pd.read_csv('dance_class_data.csv')
print(dance_class.head(5))Salida:
Name Gender Age Experience
0 Chris Shelton M 23 beginner
1 Douglas Watson M 28 intermediate
2 Martha Gomez F 45 beginner
3 Amos Moore M 63 beginner
4 Valentina Sen F 35 beginnerQueremos agrupar las edades en rangos de 10 años (20–29, 30–39, 40–49…).
Crear contenedores con pandas.cut()
bins = [20, 30, 40, 50, 60, 70]
labels = ['20s', '30s', '40s', '50s', '60s']
dance_class['AgeGroup'] = pd.cut(dance_class['Age'], bins=bins, labels=labels)
print(dance_class[['Age', 'AgeGroup']].head())Salida:
Age AgeGroup
0 23 20s
1 28 20s
2 45 40s
3 63 60s
4 35 30sOtras funciones útiles
pd.qcut()→ Agrupa en cuantiles (por ejemplo, cuartiles o deciles), ideal cuando los datos no están uniformemente distribuidos.np.histogram_bin_edges()→ Permite definir automáticamente los límites de los bins según los datos.
Combinar (Contraer) variables categóricas
No todas las variables son numéricas. En los conjuntos de datos reales, muchas veces encontramos variables categóricas, como el país, la profesión, el color o el tipo de producto.
A veces, estas categorías son demasiado numerosas o desbalanceadas, lo que dificulta el análisis.
Ejemplo práctico
Supón que tienes este conjunto de datos con los deportes más populares:
| Sport | Count |
|---|---|
| Basketball | 500 |
| Football | 400 |
| Baseball | 8 |
| Tennis | 7 |
| Cricket | 4 |
| Sailing | 3 |
Claramente, los dos primeros deportes dominan la muestra.
Podríamos combinar todas las demás categorías menores en una sola llamada “Others”.
En Python:
import pandas as pd
sports = pd.DataFrame({
'Sport': ['Basketball', 'Football', 'Baseball', 'Tennis', 'Cricket', 'Sailing'],
'Count': [500, 400, 8, 7, 4, 3]
})
# Definir umbral mínimo
threshold = 50
sports['Sport_Grouped'] = sports['Sport'].where(sports['Count'] >= threshold, 'Other')
print(sports)
Salida:
Sport Count Sport_Grouped
0 Basketball 500 Basketball
1 Football 400 Football
2 Baseball 8 Other
3 Tennis 7 Other
4 Cricket 4 Other
5 Sailing 3 OtherDe esta forma, las categorías menores se combinan en una sola, lo que simplifica el análisis y mejora la visualización.
¿Por qué contraer categorías?
- Reduce el ruido visual.
- Simplifica modelos de ML, ya que menos categorías implican menos variables dummy tras el one-hot encoding.
- Evita el sesgo de categorías minoritarias.
En resumen
| Técnica | Qué hace | Cuándo usarla | Ejemplo |
|---|---|---|---|
| Discretización (Binning) | Convierte variables continuas en intervalos | Cuando quieres resumir o suavizar datos | Edad → grupos de edad |
| Contracción de categorías | Combina etiquetas poco frecuentes en una sola | Cuando hay categorías desbalanceadas | Deportes minoritarios → “Otros” |
Ambas técnicas pertenecen al proceso de transformación y limpieza de datos, una etapa crucial del preprocesamiento en ciencia de datos antes de modelar o visualizar.
Deja una respuesta