df = pd.DataFrame( {'col1':[1,0]} )col10 11 0external_var = 'yes'df.eval( '(@external_var == "yes") == col1' )0 False1 True
这个问题似乎与使用external_var无关,因为
df.eval(‘(“yes”==“yes”)== col1’)
给出了相同的意外结果.
上下文
我的用例是编写一个系统,根据非程序员可以编写的规则将点分配给项目表.规则将取决于外部事件元数据(因此是external_var比较),将其与帧中的列进行比较.查询函数似乎是理想的,但它似乎没有按预期行事.我尝试阅读源代码,但在PandasExprVisitor类的某处丢失了.
我考虑过的一个解决方法是将每个外部数据分配给一个列,但是当元数据本身包含列表时,这似乎会中断.
这些测试使用Pandas 0.16.2和numexpr 2.4.3在jupyter中运行.
解决方法 这是BUG( GH11044),可能会在Next Major Release里程碑中得到纠正.In [9]: df.eval( '("yes" == "yes")')Out[9]: False总结
以上是内存溢出为你收集整理的python – 具有不包含列名的子表达式的Pandas查询函数全部内容,希望文章能够帮你解决python – 具有不包含列名的子表达式的Pandas查询函数所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)