Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Como substituir todos valores de uma Coluna de um DataFrame para Números?

Tenho um DataFrame com os Dados da Titanic Competition do Kaggle, gostaria de substituir os valores da coluna "Embarked" para números diferente para cada valor único.

A coluna tem 3 valores diferentes, então seriam números do 1 ao 3, exemplo:

S = 1 C = 2 Q = 3

Obrigado!

4 respostas
solução!

Olá Gabriel,

Você pode utilizar o map do pandas para fazer isso:

new_values = {'S': 1, 'C': 2, 'Q': 3}
data['Embarked'] = data['Embarked'].map(new_values)

Exemplo completo:

Espero ter ajudado, qualquer dúvida é só falar!

Lucas, muito obrigado mesmo.

Mais uma coisa, qual seria a solução para a coluna "Cabin" com 147 valores únicos? Teria algo mais rápido?

Levando em conta que já preenche os dados faltantes.

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)

Lucas, você é fera haha muito obrigado, ajudou muito mesmo.