Codificação ordinal de um DataFrame
Recursos categóricos podem ser codificados usando duas técnicas: one-hot encoding e codificação ordinal. No one-hot encoding, cada categoria vira uma coluna e, para cada linha, a coluna da categoria correspondente vale 1 e as demais valem 0. Na codificação ordinal, as categorias são mapeadas para valores inteiros que vão de 0 até o número de categorias.
Neste exercício, você vai iterar por todas as colunas do DataFrame users para codificar ordinalmente as categorias. Você também vai armazenar um codificador para cada coluna em um dicionário ordinal_enc_dict para que as colunas codificadas possam ser convertidas de volta para as categorias originais.
Este exercício faz parte do curso
Lidando com Dados Ausentes em Python
Instruções do exercício
- Defina um dicionário vazio
ordinal_enc_dict. - Crie um objeto Ordinal Encoder para cada coluna.
- Selecione os valores não nulos da coluna em users e codifique-os.
- Atribua de volta os valores codificados às posições não nulas de cada coluna (
col_name) em users.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Create an empty dictionary ordinal_enc_dict
ordinal_enc_dict = ___
for col_name in users:
# Create Ordinal encoder for col
ordinal_enc_dict[col_name] = ___
col = users[col_name]
# Select non-null values of col
col_not_null = ___
reshaped_vals = col_not_null.values.reshape(-1, 1)
encoded_vals = ordinal_enc_dict[col_name].fit_transform(reshaped_vals)
# Select the non-null values for the column col_name in users and store the encoded values
users.loc[___, ___] = np.squeeze(encoded_vals)