Los conjuntos de datos para la ejecución del aprendizaje automático incluyen variables numéricas y categóricas. Las variables categóricas son datos de tipo cadena que los humanos comprenden fácilmente. Las máquinas, por otro lado, no pueden entender las entradas categóricas directamente. En consecuencia, el contenido categórico debe transformarse en valores numéricos que las máquinas puedan interpretar.
En este tutorial, discutiremos tres formas diferentes de convertir valores categóricos a valores numéricos en Pandas DataFrame
Enfoque 1: Uso de reemplazo ()
En Python, reemplazar () se usa para cambiar o convertir los valores dados en nuevos valores que especificamos. Para reemplazar múltiples valores, necesitamos pasar dos listas como parámetros. La primera lista almacenará los valores reales a reemplazar, y la segunda lista almacenará los valores que reemplazan los valores en la primera lista.
Sintaxis
DataFrame_Object ['columna'] = dataFrame_Object ['columna'].Reemplazar ([Value1, Value2, ...], [Value1, Value2, ...])Aquí, la columna es el nombre de la columna en la que estamos reemplazando los valores.
Considere DataFrame
Creemos el marcado de datos de Pandas con nombre sets que sostienen 4 columnas con 10 filas.
# Importar el DataFrame desde el módulo pandasProducción
edad de género prioritario del códigoVemos dos columnas con el tipo categórico (objeto), i.mi., prioridad y género.
Por lo tanto, necesitamos convertirlos en valores numéricos/enteros.
Ejemplo 1
Reemplacemos los valores en la columna de género usando el método reemplazar ().
# Importar el DataFrame desde el módulo pandasProducción
edad de género prioritario del códigoExplicación
Estamos reemplazando 'M' con 1 y 'F' con 2 y almacenamos los valores de la columna nuevamente en la columna de género. Podemos ver que la columna de género contiene valores dentro de 1 o 2.
Ejemplo 2
Reemplacemos los valores en la columna de prioridad usando el método reemplazar ().
# Importar el DataFrame desde el módulo pandasProducción
edad de género prioritario del códigoExplicación
Hay tres categorías en la columna de prioridad. Son 'bajos', 'altos' y 'medianos'. Estamos reemplazando 'bajo' con 0, 'medio' con 1 y 'alto' con 2 y almacenando los valores de la columna nuevamente en la columna de prioridad.
Enfoque 2: Uso de Aplicar (factorize ())
El otro método que Pandas nos proporcionó es el 'DataFrame.Aplicar () 'función para convertir todos los valores categóricos en enteros.
Para convertir múltiples columnas categóricas en enteros, hemos seguido esta técnica:
El método Factorize tomará un valor con un tipo de datos de 'objeto' y lo convertirá en 'int'.
Si desea convertir solo los valores categóricos de una columna en particular a enteros, entonces aplicar () no se usa.
Sintaxis para una sola columna
DataFrame_Object ['columna'] = pandas.factorize (dataFrame_Object ['columna']) [0]Sintaxis para todas las columnas
DataFrame_Object [dataFrame_Object.select_dtypes (['objeto']).columnas] = dataFrame_Object [dataFrame_Object.select_dtypes (['objeto']).columnas].Aplicar (Lambda X: Pandas.factorize (x) [0])Nota: El reemplazo comenzará desde 0.
Ejemplo 1: Reemplace los valores categóricos de una sola columna
Reemplacemos los valores en la columna de género usando el método factorize ().
# Importar el DataFrame desde el módulo pandasProducción
edad de género prioritario del códigoExplicación
Estamos reemplazando 'M' con 0 y 'F' con 1 y almacenamos los valores de la columna nuevamente en la columna de género. Ahora, podemos ver que la columna de género contiene valores dentro de 0 o 1.
Ejemplo 2: Reemplace todos los valores categóricos de la columna
Reemplacemos los valores en todas las columnas utilizando el método Aplicar (factorize ()).
# Importar el DataFrame desde el módulo pandasProducción
edad de género prioritario del códigoExplicación
Podemos ver en el siguiente:
Hasta ahora, hemos visto el reemplazo de valores categóricos a valores enteros en columnas individuales o todas con valores categóricos conocidos. Supongamos que hay un gran conjunto de datos con más de un lakh Records. Cómo reemplazar los valores categóricos?
La solución es la codificación de la etiqueta.
Discutamos este enfoque.
Enfoque 3: Uso de LabelEncoding
LabelEncoder () es el método presente dentro del módulo Sklearn, que convertirá los valores categóricos de una columna en particular a un entero. No necesitamos especificar los valores categóricos.
El método Fit_Transform () se usa junto con LabelEncoder () que se ajusta a los valores transformados.
En esta técnica, los valores reemplazados comienzan desde 0, y el reemplazo se realiza en orden alfabético de los valores categóricos.
Sintaxis
DataFrame_Object ['columna'] = LabelEncoder ().Fit_transform (dataFrame_Object ['columna'])Aquí, la columna es el nombre de la columna en la que estamos reemplazando los valores.
Ejemplo
Reemplacemos los valores en el género, columnas de prioridad utilizando el siguiente enfoque:
# Importar el DataFrame desde el módulo pandasProducción
edad de género prioritario del códigoExplicación
Conclusión
Nuestra guía gira en torno a convertir valores categóricos en valores numéricos para que las máquinas puedan ser comprensibles, ya que el tipo de datos de objeto no puede ser procesado por ellos. Le hemos presentado los tres enfoques presentados por la biblioteca "Pandas" para obtener el tipo de datos requerido. Recuerde, debe usar el enfoque de Entroding Label ya que no sabe cuántas categorías están presentes en la columna del marco de datos de Pandas.