我有一个DataFrame,我想检查列的任何值(v)是否满足x<=v<=y
。
equal = any(df['columnX'] == value) # No problems here
in_between = any(x <= df['columnX'] <= y) # ValueError :/
我得到的错误是ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
,但我已经在使用any()
了!
那有什么问题吗为什么它可以在==
上工作,而不能在x<=v<=y
上工作?
6条答案
按热度按时间5cnsuln71#
使用
between
来实现,它还支持是否通过inclusive
arg包含范围值:然后在上面调用
any
:okxuctiv2#
你只能有两个条件:
这一行将选择df中满足条件的所有行。
kqqjbcuj3#
您可以使用自定义函数在dataframe上运行:
zdwk9cvp4#
如果您想查看其他列值,可以尝试
sirbozc55#
另一种方法是使用
query
:juzqafwq6#
你也可以使用numpy stlye的compare by rows进行比较: