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 Coluna | Tipo |
---|
Nome | object |
Motor | object |
Ano | int64 |
Quilometragem | float64 |
Zero_km | bool |
Acessórios | object |
Valor | float64 |
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!