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

Não consegui mapear a coluna vendido

oi pessoal, tudo bem?

Ao tentar mapear a coluna vendido o arquivo me devolveu a informação NaN, como na figura:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Meu código para averiguarem se há algum erro, mas não encontrei nada estranho.

import pandas as pd

uri = 'https://gist.githubusercontent.com/guilhermesilveira/4d1d4a16ccbf6ea4e0a64a38a24ec884/raw/afd05cb0c796d18f3f5a6537053ded308ba94bf7/car-prices.csv'
dados = pd.read_csv(uri)
dados.head()

a_renomear = {
    'mileage_per_year' : 'milhas_por_ano',
    'model_year' : 'ano_do_modelo',
    'price' : 'preco',
    'sold' : 'vendido'
}

dados = dados.rename(columns=a_renomear)
dados.head()

a_trocar = {
    'no': 0,
    'yes': 1
}
dados.vendido = dados.vendido.map(a_trocar)
dados.head()
2 respostas
solução!

Olá Rennan!

Provavelmente você tentou executar a linha abaixo mais de uma vez.

dados.vendido = dados.vendido.map(a_trocar)

Na primeira vez que executa, você tinha as strings yes e no na sua coluna vendido. Quando fez o mapeamento, você transformou-as em 0s e 1s.

Quando executa uma próxima vez, não existe nenhum yes e no na coluna vendido mais. Assim, seŕa retornado apenas valores NaN.

Execute todo o seu bloco uma única vez e veja que funcionará.

Uma boa prática é você criar uma cópia do seu dataset original, fica mais simples de localizar os erros tendo as outras versões. Por exemplo, você poderia fazer:

dados_processados = dados.copy()
dados_processados.vendido = dados_processados.map(a_trocar)

Executando essas linhas em uma mesma célula do seu jupyter, você evitaria sobrescrever no dataset original e, mesmo se rodasse novamente, não teria esse erro.

Veja se funcionou :D

Funcionou sim! Obrigado!!