在 pandas.DataFrame.query() 表达式中使用负数

2023-12-22

我尝试使用 pandas.DataFrame.query() 函数,如下所示:

expression_string = 'ColumnName<(-1000)'
output_dataframe = dataframe.query(expression_string)

该代码适用于正数,但是当将负数传递给字符串时,如上所述,它会返回以下错误:

AttributeError: 'UnaryOp' object has no attribute 'value'

关于如何在 DataFrame query() 表达式中使用负数有什么建议吗?谢谢你!!


我可以重现这个错误pandasv0.20.3 具有特定数据类型;例如,np.float32。解决方法是显式转换为float.

这是一个已知的错误:DataFrame.eval 错误 AttributeError: 'UnaryOp' https://github.com/pandas-dev/pandas/issues/16363

df = pd.DataFrame({'A': [-3.0, -2.5, -1.5, 3.0]}, dtype=np.float32)

x = 'A>(-1)'

# AttributeError:
res = df.query(x)

# Success:
df['A'] = df['A'].astype(float)
res = df.query(x)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 pandas.DataFrame.query() 表达式中使用负数 的相关文章

随机推荐