Oi Kiko!
Peço desculpas pela demora em dar um retorno.
Vamos lá.
A ferramenta iterrows()
, nos ajuda a criar um iterador. Se criarmos uma lista a partir desse iterador, teremos:
list(dataset.iterrows()) # cria diversas tuplas com duas informações em cada
Resultado:
[('Jetta Variant',
Motor Motor 4.0 Turbo
Ano 2003
Quilometragem 44410
Zero_km False
Acessórios ['Rodas de liga', 'Travas elétricas', 'Piloto ...
Valor 88078.6
Km_media 2775.62
Name: Jetta Variant, dtype: object),
('Passat', Motor Motor Diesel
Ano 1991
Quilometragem 5712
Zero_km False
Acessórios ['Central multimídia', 'Teto panorâmico', 'Fre...
Valor 106162
Km_media 204
Name: Passat, dtype: object),
# restante do resultado
Podemos observar que é gerada uma lista contendo várias tuplas, sendo cada uma dessas tuplas compostas pelo índice do nosso dataframe (os nomes dos veículos) e por uma Series com as informações da linha correspondente a esse índice. Isso nos permitirá acessar cada uma dessas informações. Conforme mostrado a aula pelo professor.
Sendo assim, para conseguirmos acessar cada uma dessas informações, podemos fazer o for index, row in dataset.iterrows():
, onde o index
irá percorrer o primeiro elemento de cada uma das tuplas, ou seja, os nomes dos veículos e row
, por sua vez, percorrerá o segundo elemento de cada tupla, ou seja, as Series contendo os dados de cada carro.
Sendo assim, quando fazemos:
for index, row in dataset.iterrows():
if 2019 - row['Ano'] != 0:
dataset.loc[index, 'KM_Media'] = row['Quilometragem'] / (2019 - row['Ano'])
else:
dataset.loc[index, 'KM_Media'] = 0
O que acontece é o seguinte, se o carro não for do ano de 2019, ou seja, se 2019 subtraído do ano do carro for diferente de 0, nós desejamos calcular a quilometragem média desse carro. E, para isso, nós utilizamos essa linha dataset.loc[index, 'KM_Media'] = row['Quilometragem'] / (2019 - row['Ano'])
, na qual, por meio do comando loc, localizamos o index que estiver sendo iterado naquele momento pelo laço e criamos uma nova coluna chamada 'KM_Media', sendo que o valor dessa coluna vai ser igual ao valor da quilometragem do carro, dividida pela subtração dos anos. Nós fazemos essa conta da seguinte forma: row['Quilometragem'] / (2019 - row['Ano']
E, caso o carro seja do ano de 2019, nós atribuimos para a coluna 'KM_Media' daquele carro, o valor 0: dataset.loc[index, 'KM_Media'] = 0
.
Resumindo então, essa parte do código serve para percorrer todo o dataframe e calcular a quilometragem média de cada um dos carros, sendo que, aqueles que são do ano de 2019, terão a quilometragem média igual a 0.
Espero ter ajudado :)
Qualquer dúvida me avisa que nós vamos nos falando.
Bons estudos!