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

porque retorna esse resultado?

olá!

quando rodo

dataset.query('Zero_km')

retorna o mesmo resultado de

dataset.query('Zero_km' == True)

e quando faço

dataset.query('Zero_km' == False)

retorna realmente os que não são 0 km.

porque isso está acontecendo, se eu fizesse sem o == True não era pra me retornar a coluna inteira especificada?

2 respostas

correção

escrevi aqui dataset.query('Zero_km' == True)

e na verdade é dataset.query('Zero_km == True')

mas a dúvida continua a mesma

solução!

Fala, Roberval! Beleza?

Peço desculpas pela demora em dar um retorno.

Analisando sua dúvida temos que entender que no nosso dataset utilizando o .dtypes

dataset.dtypes

Temos como saída:

Nome da ColunaTipo
Nomeobject
Motorobject
Anoint64
Quilometragemfloat64
Zero_kmbool
Acessóriosobject
Valorfloat64
dtype:object

Sabendo que nossa coluna Zero_km é do tipo bool, podemos ter isso em mente e começar a pensar juntos na sua questão.

Primeiramente você usou:

dataset.query('Zero_km')

De acordo com a documentação do pandas o método .query() tem o objetivo de consultar colunas de um dataframe com uma expressão booleana. Por isso no seu código funcionou, porque a coluna Zero_km é do tipo boolean ou seja True ou False . Se pegarmos por exemplo a coluna Ano que é do tipo int64 e não definirmos nenhum valor como parâmetro, por exemplo:

dataset.query('Ano')

Retornaria um erro, pois na query ou seja na nossa consulta que estamos fazendo não determina nenhuma condição explicitamente, ou seja, maior, menor, uma igualdade ou até mesmo negação .

No seu caso especificamente por se tratar de uma coluna do tipo boolean por padrão o método query vai retornar os valores True mesmo se você não definir nenhuma condição. Por isso temos que as operações abaixo são equivalentes:

 dataset.query("Zero_km")
 dataset.query("Zero_km==True")

Da mesma forma que a negação também funcionaria do mesmo modo que filtrar através do False, desta forma:

 dataset.query("~Zero_km")
dataset.query("Zero_km==False")

Espero ter ajudado e qualquer dúvida estou por aqui. Bons estudos!

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