La función get_dummies

Algo más cómodo es el uso de Pandas. Recordemos los primeros registros del dataset Titanic:

titanic = sns.load_dataset("titanic")
titanic.head()
Codificación de características

Para aplicar la codificación One Hot Encoding, bastaría con pasar a la función pd.get_dummies() la Serie Pandas a codificar. Por ejemplo, podemos codificar el puerto de embarque (columna "embarked") con el siguiente código:

data = pd.get_dummies(titanic.embarked)
data

La función get_dummies

Como vemos, el resultado es un DataFrame Pandas que incluye tanto los índices de fila como de columna.

Aquellos registros que contenían nulos, reciben como codificación [0, 0, 0], cosa que podemos comprobar si identificamos sus índices:

index = titanic.embarked[titanic.embarked.isna()].index
index
Int64Index([61, 829], dtype='int64')

y mostramos las filas correspondientes de la estructura data que hemos creado:

data.loc[index]

La función get_dummies

En todo caso, es posible forzar la creación de una columna independiente para estas muestras dando al parámetro dummy_na el valor True:

data = pd.get_dummies(titanic.embarked, dummy_na = True)
data

La función get_dummies

Ahora, las muestras que incluían nulos han sido codificadas de la siguiente forma:

data.loc[index]

La función get_dummies

Para sustituir la columna original con la estructura obtenida podemos volver a recurrir a la función pd.concat():

titanic = pd.concat([
    titanic.drop("embarked", axis = 1),
    data
], axis = 1)
titanic.head()
La función get_dummies