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

Ejemplo

    frutas = ['manzana', 'plátano', 'naranja', 'manzana', 'plátano', 'pera']
colores = ('rojo', 'amarillo', 'naranja', 'verde', 'amarillo', 'verde')
pprint(colores)
print(colores)
  
Abrir en editor

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


Usando diccionarios

Ejemplo

    alumnos = {
    'Juan': 'Aprobado',
    'María': 'Reprobado',
    'Pedro': 'Aprobado',
    'Ana': 'Aprobado',
    'Luis': 'Reprobado'
}
print(alumnos)
print(alumnos)
  
Abrir en editor

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


Usando DataFrames de pandas

Ejemplo

    df = pd.DataFrame(data)
print(df)
ddf = pd.DataFrame(data)
print(df)
  

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.

Ejemplo

    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:

Ejemplo

    import io

file = io.StringIO("Línea de ejemplo\nSegunda línea\n")

import pandas as pd

data = pd.read_csv('datos.csv')  #import pandas as pd

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

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.

Ejemplo

    import pandas as pd
data = pd.DataFrame({
    "categoria": ["A", "B", "A", "C"],
    "valor": [10, 20, 15, 30],
})

print(data.head())
print(data)
  
Abrir en editor

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.

Ejemplo

    data['categoria_codificada'] = label_encoder.fit_transform(data['categoria'])
print(label_encoder)
  

One-Hot Encoding

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

Ejemplo

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

Eliminar columnas originales (opcional)

Puedes eliminar las columnas originales si lo deseas.

Ejemplo

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

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

    import pandas as pd
data = pd.DataFrame({
    "categoria": ["A", "B", "A", "C"],
    "valor": [10, 20, 15, 30],
})

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

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.

Practica Datos categóricos en Python en el editor

Pon en práctica lo aprendido con nuestro editor Python interactivo. Cada ejercicio incluye el código de partida y un botón para abrirlo en una nueva pestaña, donde puedes modificarlo y ejecutarlo.

Ejercicio: Usar print()

En Python, los datos categóricos pueden representarse utilizando varios tipos de estructuras de datos, como listas, tuplas, diccionarios o DataFrames de.

Ejemplo

    frutas = ['pera', 'mango', 'fresa', 'pera', 'mango', 'pera']
colores = ('rojo', 'amarillo', 'fresa', 'verde', 'amarillo', 'verde')
pprint(colores)
print(colores)
  
Abrir en editor

Ejercicio: En este ejemplo, el diccionario

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

Ejemplo

    import io

file = io.StringIO("Línea de ejemplo\nSegunda línea\n")

import pandas as pd

data = pd.read_csv('datos.csv')  #import pandas as pd

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

Ejercicio: Usar print() (2)

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.

Ejemplo

    data['categoria_codificada'] = label_encoder.fit_transform(data['categoria'])
print(label_encoder)
  
Abrir en editor

Ejercicio: Usar print() (3)

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

Ejemplo

    df = pd.DataFrame(data)
print(df)
ddf = pd.DataFrame(data)
print(df)
  
Abrir en editor

Ejercicio: Usar print() (4)

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.

Ejemplo

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

Ejercicio: Crea columnas binarias para cada categoría

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

Ejemplo

    import pandas as pd
data = pd.DataFrame({
    "categoria": ["A", "B", "A", "C"],
    "valor": [10, 20, 15, 30],
})

print(data.head())
print(data)
  
Abrir en editor