[英]pandas.DataFrame why use parenthesis to wrap operations to make bitwise comparison
DataFrame 称为 c,它有一个名为 price 的列,我想知道价格等于 2 或 3 的行。代码在这里工作
c[(c['price'] == 2) | (c['price'] == 3)]
但在这里不起作用:
c[c['price'] == 2 | c['price'] == 3]
并引发异常:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
唯一的区别在于第二行代码,操作中没有括号'()'。 那么为什么括号如此重要呢?
非常感谢!
|
为or
, &
为and
, and ~
为not
. 这些必须使用括号进行分组,因为默认情况下 Python 将评估表达式,例如df['A'] > 2 & df['B'] < 3
as df['A'] > (2 & df['B']) < 3
,而所需的评估顺序是(df['A > 2) & (df['B'] < 3)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.