一个 DataFrame 被称为 c,它有一个名为 price 的列,我想在其中知道 price 等于 2 或 3 的行。代码在这里工作
c[(c['price'] == 2) | (c['price'] == 3)]
Run Code Online (Sandbox Code Playgroud)
但在这里不起作用:
c[c['price'] == 2 | c['price'] == 3]
Run Code Online (Sandbox Code Playgroud)
并引发异常:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Run Code Online (Sandbox Code Playgroud)
唯一的区别是在第二行代码中,操作中没有包含括号“()”。那么为什么括号如此重要呢?
非常感谢!
|for or、&forand和~for not。这些必须通过使用括号,由于默认的Python将评估例如表达被分组df['A'] > 2 & df['B'] < 3为df['A'] > (2 & df['B']) < 3,而所希望的评价顺序是(df['A > 2) & (df['B'] < 3)| 归档时间: |
|
| 查看次数: |
96 次 |
| 最近记录: |