Datos categóricos en Python

Los datos categóricos son un tipo de datos en Python que representan categorías o grupos. Estos datos son discretos y no numéricos, lo que significa que no se pueden medir o comparar directamente. Los datos categóricos son comunes en problemas de análisis de datos y aprendizaje automático, ya que se utilizan para representar características o variables que tienen un conjunto finito de categorías o etiquetas.

En Python, los datos categóricos pueden representarse utilizando varios tipos de estructuras de datos, como listas, tuplas, diccionarios o DataFrames de la biblioteca pandas. Aquí hay algunos ejemplos de cómo se pueden representar datos categóricos en Python:


Usando listas o tuplas

frutas = ['manzana', 'plátano', 'naranja', 'manzana', 'plátano', 'pera']
colores = ('rojo', 'amarillo', 'naranja', 'verde', 'amarillo', 'verde')

En este ejemplo, las listas frutas y colores contienen datos categóricos que representan diferentes tipos de frutas y colores.


Usando diccionarios

alumnos = {
    'Juan': 'Aprobado',
    'María': 'Reprobado',
    'Pedro': 'Aprobado',
    'Ana': 'Aprobado',
    'Luis': 'Reprobado'
}

En este ejemplo, el diccionario alumnos representa datos categóricos que indican si un alumno ha sido aprobado o reprobado.


Usando DataFrames de pandas

import pandas as pd

data = {
    'Nombre': ['Juan', 'Maria', 'Pedro', 'Ana', 'Luis'],
    'Edad': [25, 30, 28, 22, 27],
    'Ciudad': ['Madrid', 'Barcelona', 'Sevilla', 'Madrid', 'Valencia']
}

df = pd.DataFrame(data)

En este ejemplo, el DataFrame df contiene datos categóricos en la columna ‘Ciudad’, que representa diferentes ciudades.

El manejo adecuado de datos categóricos es esencial en el análisis de datos y el aprendizaje automático. Es importante convertir los datos categóricos en una forma que pueda ser procesada por los algoritmos de aprendizaje automático, como codificar las categorías en valores numéricos o usar técnicas de codificación one-hot para representar las categorías como variables binarias.

Python ofrece diversas bibliotecas, como pandas y scikit-learn, que proporcionan herramientas y funciones para manejar datos categóricos y realizar tareas de preprocesamiento en el análisis de datos y el aprendizaje automático.


Importar las bibliotecas necesarias.

Para trabajar con datos categóricos, necesitarás importar las bibliotecas pandas y scikit-learn.

import pandas as pd
from sklearn.preprocessing import LabelEncoder, OneHotEncoder

Cargar los datos

Primero, asegúrate de tener los datos categóricos en un formato adecuado, ya sea en un archivo CSV, Excel o una base de datos. Puedes cargar los datos utilizando pandas:

data = pd.read_csv('datos.csv')  # Reemplaza 'datos.csv' con el nombre de tu archivo de datos

Identificar las columnas categóricas

Examina tus datos para identificar qué columnas son categóricas. Puedes hacerlo imprimiendo las primeras filas del DataFrame y observando las columnas relevantes.

print(data.head())

Codificar datos categóricos

Hay varias formas de codificar datos categóricos, dependiendo de la naturaleza de tus datos y el modelo que desees entrenar. Algunas opciones comunes son:

  • Label Encoding: Convierte las categorías en números enteros. Útil para columnas ordinales donde hay un orden significativo.
label_encoder = LabelEncoder()
data['categoria_codificada'] = label_encoder.fit_transform(data['categoria'])

One-Hot Encoding

Crea columnas binarias para cada categoría. Útil para columnas nominales donde no hay un orden significativo.

onehot_encoder = OneHotEncoder(sparse=False)
onehot_encoded = pd.DataFrame(onehot_encoder.fit_transform(data[['categoria']]))
data = pd.concat([data, onehot_encoded], axis=1)

Eliminar columnas originales (opcional)

Puedes eliminar las columnas originales si lo deseas.

data.drop(['categoria'], axis=1, inplace=True)

Utilizar los datos categóricos en tu análisis o modelo

Ahora que los datos categóricos han sido codificados, puedes utilizarlos en tu análisis de datos o para entrenar modelos de aprendizaje automático.

# Ejemplo: Imprimir las primeras filas del DataFrame después de la codificación
print(data.head())

Recuerda adaptar estos pasos según las necesidades específicas de tus datos y el análisis que deseas realizar. El procesamiento de datos categóricos es un paso importante en el análisis de datos y el aprendizaje automático, y puede afectar significativamente los resultados de tus modelos.