1
resposta

Não consigo criar coluna km por ano

Consegui todos os passos anteriores,

import pandas as pd
uri = "https://gist.githubusercontent.com/guilhermesilveira/4d1d4a16ccbf6ea4e0a64a38a24ec884/raw/afd05cb0c796d18f3f5a6537053ded308ba94bf7/car-prices.csv"
dados = pd.read_csv(uri)
a_renomear = {
    'mileage_per_year' : 'milhas_por_ano',
    'model_year' : 'ano_do_modelo',
    'price' : 'preco',
    'sold' : 'vendido'
}
dados = dados.rename(columns=a_renomear)
a_trocar = {
    'no' : 0,
    'yes' : 1
}
dados.vendido = dados.vendido.map(a_trocar)
from datetime import datetime

ano_atual = datetime.today().year
dados['idade_do_modelo'] = ano_atual - dados.ano_do_modelo

porém quando vou fazer uma nova coluna para o km por ano:

dados['km_por_ano'] = dados.milhas_por_ano * 1,60934

ocorre este erro:

---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

<ipython-input-5-fe2225f2e976> in <module>()
----> 1 dados['km_por_ano'] = dados.milhas_por_ano * 1,60934
      2 
      3 dados.head()

3 frames

/usr/local/lib/python3.6/dist-packages/pandas/core/internals/construction.py in sanitize_index(data, index, copy)
    517 
    518     if len(data) != len(index):
--> 519         raise ValueError('Length of values does not match length of index')
    520 
    521     if isinstance(data, ABCIndexClass) and not copy:

ValueError: Length of values does not match length of index
1 resposta

Olá Tamires,

O detalhe do erro está no número, você colocou 1,60934 e o correto seria 1.60934.

Em python números decimais são escritos com ponto (.) e não vírgula (,).

Ainda bem que você colocou o código e o erro bem organizado aqui, caso contrário até um detalhe desse seria bem complicado de achar.

Espero ter ajudado, qualquer outra dúvida pode perguntar.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software