python – 具有不包含列名的子表达式的Pandas查询函数

python – 具有不包含列名的子表达式的Pandas查询函数,第1张

概述我在使用pandas查询函数时遇到问题,其中子表达式不包含任何框架的列.我希望以下内容给出[True,False],但事实上它会响应[False,True]: df = pd.DataFrame( {'col1':[1,0]} )col10 11 0external_var = 'yes'df.eval( '(@external_var == "yes") == co 我在使用pandas查询函数时遇到问题,其中子表达式不包含任何框架的列.我希望以下内容给出[True,False],但事实上它会响应[False,True]:

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查询函数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1197382.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存