Só pra completar a resposta anterior, o pandas também tem o método replace
que é mais direto que o map
pra fazer essa substituição.
Nesse segundo caso já que são muitos valores únicos o ideal é utilizar um código para gerar o mapeamento. Exemplo:
valores_unicos = data['Cabin'].unique()
total_valores = len(valores_unicos)
mapeamento = dict(zip(valores_unicos, range(total_valores)))
Com isso conseguimos gerar um mapeamento parecido com o de Embarked
: {'S': 1, 'C': 2, 'Q': 3}
só que com 77 itens agora (estou utilizando o menor dataset: test.csv
).
Agora é só aplicar o mapeamento:
data['Cabin'] = data['Cabin'].replace(mapeamento)