1
resposta

Dois códigos -> mesmos filtros = resultados diferentes?

Eu fiz 2 maneiras de filtrar o dataset por meio do operador bool: OR, mas obtive dois resultados diferente:

import pandas as pd

dados = {
    'Motor': ['Motor 4.0 Turbo', 'Motor Diesel', 'Motor Diesel V8', 'Motor Diesel', 'Motor 1.6'],
    'Ano': [2019, 2003, 1991, 2019, 1990],
    'Quilometragem': [0.0, 5712.0, 37123.0, 0.0, 120000.0],
    'Zero_km': [True, False, False, True, False],
    'Valor': [88000.0, 106000.0, 72000.0, 89000.0, 32000.0]
}

dataset = pd.DataFrame(dados, index = ['Jetta', 'Passat', 'Crossfox', 'DS5', 'Fusca'])

Este é o exercício proposto.

dataset.query('Motor == "Motor Diesel" | Zero_km == "True"')

neste código, o resultado foi apenas do Passat e DS5

dataset[(dataset.Motor == 'Motor Diesel') | (dataset.Zero_km == True)]

neste outro, o resultado foi o esperado com o Jetta, Passat e DS5.

Alguém sabe o Porquê?

1 resposta

Olá, João! Como vai?

Acredito que como o True é um booleano e não uma string, você deve passar sem as aspas duplas.

O código abaixo funcionou conforme esperado...

dataset.query('Motor == "Motor Diesel" | Zero_km == True')

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