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

Seleção da coluna Motor

Na aula, aprendemos a selecionar apenas carros com motor Diesel no nosso dataset. No entanto, a coluna Motor também inclui motores Diesel V6 e Diesel V8, por exemplo. Seria possível, usando os métodos ensinados, incluir na seleção de carros com motor Diesel também esses com a cilindrada, ou teria que ser criada uma nova coluna separando esses dados (V6, V8) para que pudéssemos selecionar todos os veículos movidos a Diesel?

2 respostas

Olá, Marcos! Tudo bem com você?

É possível, sim! Você só precisa realizar algumas mudanças na hora de realizar a seleção.

Vamos realizar as mesmas seleções feitas nas aulas, mas com essas modificações, beleza?

Em resumo, temos apenas que adicionar as condições para localizar o 'Motor Diesel' para os demais motores.

Primeiro, vamos começar criando o primeiro select. Vou chamar o novo select de select_varios.

select_varios = (dataset.loc[:,['Motor']] == 'Motor Diesel') & (dataset.loc[:,['Motor']] == 'Motor Diesel V6') & (dataset.loc[:,['Motor']] == 'Motor Diesel V8')
select_varios.head(10)

Saída:

Motor
Nome
Jetta VariantFalse
PassatTrue
CrossfoxFalse
DS5False
Aston Martin DB4False
Palio WeekendFalse
A5False
Série 3 CabrioFalse
Dodge JorneyFalse
CarensFalse

No código abaixo, vamos realizar a seleção utilizando o ponto seguido da coluna, ao invés dos colchetes:

select_varios = (dataset.Motor == 'Motor Diesel') | (dataset.Motor == 'Motor Diesel V6') | (dataset.Motor == 'Motor Diesel V8')
select_varios.head(10)

Saída:

Nome
Jetta VariantFalse
PassatTrue
CrossfoxTrue
DS5False
Aston Martin DB4False
Palio WeekendFalse
A5False
Série 3 CabrioFalse
Dodge JorneyFalse
CarensFalse
Name: Motor, dtype: boolMotor Diesel

Utilizando nossa seleção como índice para o Dataframe, temos o seguinte resultado:

dataset[select_varios].head(10)

Saída:

MotorAnoQuilometragemZero_kmAcessóriosValor
Nome
PassatMotor Diesel19915712.0False['Central multimídia', 'Teto panorâmico', 'Fre...106161.94
CrossfoxMotor Diesel V8199037123.0False['Piloto automático', 'Controle de estabilidad...72832.16
Ford EdgeMotor Diesel V6200212859.0False['Sensor crepuscular', 'Rodas de liga', 'Teto ...71647.59
CourierMotor Diesel V820078052.0False['Central multimídia', '4 X 4', 'Piloto automá...73919.53
RAMMotor Diesel V82016115607.0False['Sensor crepuscular', 'Câmbio automático', 'S...59910.40
Lamborghini ObviousMotor Diesel V6199498079.0False['Rodas de liga', 'Câmbio automático', 'Travas...133529.84
Effa Hafei Picape BaúMotor Diesel1991102959.0False['Controle de estabilidade', 'Painel digital',...125684.65
Up!Motor Diesel V62019NaNTrue['Sensor de estacionamento', 'Vidros elétricos...71367.10
CR-VMotor Diesel V82019NaNTrue['Câmbio automático', 'Central multimídia', 'V...64701.10
SorentoMotor Diesel2019NaNTrue['Sensor de chuva', 'Câmera de estacionamento'...81399.35
solução!

Não deu pra colocar as outras seleções na resposta anterior :D

Continuando:

Agora, vamos realizar a seleção com as condições para os demais motores e se é zero km:

dataset[(dataset.Motor == 'Motor Diesel') | (dataset.Motor == 'Motor Diesel V6') | (dataset.Motor == 'Motor Diesel V8') & (dataset.Zero_km == True)].head(10)

Saída:

MotorAnoQuilometragemZero_kmAcessóriosValor
Nome
PassatMotor Diesel19915712.0False['Central multimídia', 'Teto panorâmico', 'Fre...106161.94
Ford EdgeMotor Diesel V6200212859.0False['Sensor crepuscular', 'Rodas de liga', 'Teto ...71647.59
Lamborghini ObviousMotor Diesel V6199498079.0False['Rodas de liga', 'Câmbio automático', 'Travas...133529.84
Effa Hafei Picape BaúMotor Diesel1991102959.0False['Controle de estabilidade', 'Painel digital',...125684.65
Up!Motor Diesel V62019NaNTrue['Sensor de estacionamento', 'Vidros elétricos...71367.10
CR-VMotor Diesel V82019NaNTrue['Câmbio automático', 'Central multimídia', 'V...64701.10
SorentoMotor Diesel2019NaNTrue['Sensor de chuva', 'Câmera de estacionamento'...81399.35
New Fiesta HatchMotor Diesel2017118895.0False['Sensor de estacionamento', 'Travas elétricas...66007.16
Lancer Evolution XMotor Diesel V62019NaNTrue['Vidros elétricos', 'Câmbio automático', 'Con...142392.75
Kangoo ExpressMotor Diesel200729132.0False['Bancos de couro', 'Câmbio automático', 'Pilo...146716.91

 

Por fim, vamos fazer essa mesma seleção utilizando o query():

dataset.query('(Motor == "Motor Diesel") | (Motor == "Motor Diesel V6") | (Motor == "Motor Diesel V8") and Zero_km == True').head(10)

A saída é mesma da seleção anterior.  

Espero ter ajudado, Marcos. Se tiver mais alguma dúvida, estou à disposição. Bons estudos =)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!