Factorizar valores de datos en Pandas

Preet Sanghavi 21 junio 2023
Factorizar valores de datos en Pandas

En este tutorial, aprenderemos a factorizar Pandas. Usaremos la función pandas.factorize() para realizar la tarea.

Al reconocer diferentes valores, el método pandas.factorize() ayuda a obtener la representación numérica de una matriz.

En primer lugar, importaremos las bibliotecas Pandas y numpy y otras bibliotecas requeridas.

import numpy as np
import pandas as pd
from pandas.api.types import CategoricalDtype

Usa la función pandas.factorize() en Pandas

Ahora pasaremos una lista con los caracteres a la función factorizar(), que nos devolverá las etiquetas y los valores únicos. Daremos salida a las etiquetas y valores únicos por separado.

labels, uniques = pd.factorize(["b", "d", "d", "c", "a", "c", "a", "b"])

El código anterior nos devolverá la lista de las representaciones numéricas de los caracteres y los valores únicos.

Veamos la salida usando el siguiente código.

print("Numeric Representation : \n", labels)
print("Unique Values : \n", uniques)
Numeric Representation :
 [0 1 1 2 3 2 3 0]
Unique Values :
 ['b' 'd' 'c' 'a']

También podemos ordenar el alfabeto usando el siguiente código.

labels, uniques = pd.factorize(["b", "d", "d", "c", "a", "c", "a", "b"], sort=True)

Tendremos el siguiente resultado para la enmienda anterior.

Numeric Representation :
 [1 3 3 2 0 2 0 1]
Unique Values :
 ['a' 'b' 'c' 'd']

También podemos usar categorías para dividir los valores de los datos en una categoría y, en este caso, los valores únicos serán diferentes. Para ello, utilizaremos la función pd.Categorical() para dividir los valores de nuestros datos.

a = pd.Categorical(["a", "a", "c"], categories=["a", "b", "c"])

label3, unique3 = pd.factorize(a)

Veamos ahora la salida del código anterior.

Numeric Representation :
 [0 0 1]
Unique Values :
 ['a', 'c']
Categories (3, object): ['a', 'b', 'c']

Podemos ver en el resultado anterior que nuestra lista de valores únicos contiene solo los valores únicos.

Por lo tanto, podemos factorizar los valores de los datos usando Pandas usando los siguientes enfoques.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub