gpt4 book ai didi

python - pandas.DataFrame 为什么要用括号来包裹操作来进行按位比较

转载 作者:行者123 更新时间:2023-12-01 23:55:05 27 4
gpt4 key购买 nike

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().

唯一的区别是在第二行代码中,没有用括号 '()' 包裹操作。那么为什么括号如此重要?

非常感谢!

最佳答案

  • 根据 Pandas: Boolean indexing
    • 另一个常见的操作是使用 bool 向量来过滤数据。运算符是:|对于 or , &对于 and , 和 ~对于 not .这些必须使用括号进行分组,因为默认情况下 Python 将评估诸如 df['A'] > 2 & df['B'] < 3 的表达式。作为df['A'] > (2 & df['B']) < 3 ,而所需的评估顺序是 (df['A > 2) & (df['B'] < 3)

关于python - pandas.DataFrame 为什么要用括号来包裹操作来进行按位比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62856778/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com