当使用 where 方法传递具有 50 个条件的字符串查询 pytables 表时,我遇到此错误。这些条件基本上是 SQL IN 子句的翻译,即我想要获取特定字段等于特定值列表的记录。
C:\Python2764\lib\site-packages\numexpr\necompiler.pyc in evaluate(ex, local_dict, global_dict, out, order, casting, **kwargs)
744 kwargs = {'out': out, 'order': order, 'casting': casting,
745 'ex_uses_vml': ex_uses_vml}
--> 746 return compiled_ex(*arguments, **kwargs)
ValueError: too many inputs
执行相同查询的另一种方法是什么?我的第一个想法是执行查询 50 次,每个值一次并合并结果。我希望也许有一个更优雅的解决方案。
对于可以传递给 numexpr 的条件数量是否有已知的限制?
最佳答案
如果您使用pandas.DataFrame.query
,那么您可以尝试更改**kwargs中的engine='python'
。
关于python - Pytables NumExpr 值错误 : too many inputs when querying with a lot of conditions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18432277/