Alguém poderia me explicar por que esse simples pedaço de código retorna False
? Provavelmente é bem simples, mas não entendo por que se comporta assim:
import pandas as pd
eval_string = '"abc"=="abc"'
print(pd.eval(eval_string, parser='pandas')) # False
Observe que, ao invés disso, tento usar a função eq () da string, ela se comporta como eu esperava.
Pode ser executado online aqui: https://onecompiler.com/python/3zhsnud82
Agradeço antecipadamente por sua ajuda.
pandas.eval
não suporta comparação escalar.Passe a sintaxe sem suporte e o Pandas não promete nada sobre o que você receberá de volta. (Isso inclui não prometer dar resultados errados. O fato de
pandas.eval('4==4')
darTrue
não significa que seja suportado.)pandas.eval
é uma ferramenta especializada para avaliar tipos específicos de expressões em grandes dataframes. Ele não deve ser usado para executar código Python geral.