Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Diferença de "&" e o "AND"

Olá, gostaria de entender o motivo de em alguns casos de código não ser possível usar o "and" no lugar do "&" como visto no exemplo abaixo.

dataset[(dataset.Motor == 'Motor Diesel') & (dataset.Zero_km == True)]
dataset[(dataset.Motor == 'Motor Diesel') and (dataset.Zero_km == True)]
1 resposta
solução!

Boa tarde, Vitor. Não sou instrutor, mas posso responder. (?)

Quando você faz dataset[(dataset.Motor == 'Motor Diesel') and (dataset.Zero_km == True)] o Python tenta converter (dataset.Motor == 'Motor Diesel') e (dataset.Zero_km == True) em valores Booleanos . Porém, matrizes NumPy (de comprimento maior que 1) e objetos Pandas como Series não possuem um valor booleano e o seguinte erro é lançado: ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). No entanto, não queremos avaliar uma expressão booleana e sim avaliar elemento a elemento e por isso usamos os operadores binários & ou |. Sugiro executar as duas expressões separadamente para entender melhor o que quero dizer com elemento a elemento.