我有一个df,我想运行类似的东西:
subsetdf= df.loc[(df['Item_Desc'].str.contains('X')==True) or \
(df['Item_Desc'].str.contains('Y')==True ),:]
Run Code Online (Sandbox Code Playgroud)
选择具有Item Desc列的子串为"X"或"Y"的所有行.
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)
我运行时遇到错误.有帮助吗?
用|而不是or.所以:
df.loc[(cond1) | (cond2), :]
Run Code Online (Sandbox Code Playgroud)
该or运营商希望比较两个布尔值(或两个表达式计算结果为真或假).但是Series(或numpy数组)并不简单地计算为True或False,在这种情况下,我们想要逐个元素地比较两个系列.为此,您可以使用|称为"按位或"的方法.
熊猫遵循这些笨拙的惯例.见这里的大熊猫文档关于它的解释.