具有多个条件的布尔索引[重复]
Posted
技术标签:
【中文标题】具有多个条件的布尔索引[重复]【英文标题】:Boolean Indexing with multiple conditions [duplicate] 【发布时间】:2016-04-04 12:57:09 【问题描述】:我有一个 Pandas DF,我需要在其中过滤一些包含特征“a”和特征“b”的值 == 0 的行。
为了检查这些值,我运行以下命令:
DF1 = DF[DF['a'] == 0]
返回正确的值。同样,通过这样做:
DF2 = DF[DF['b'] == 0]
我可以看到特征“b”的 0 值。
但是,如果我尝试使用 OR 操作数将这两个组合到一行代码中:
DF3 = DF[DF['a'] == 0 | DF['b'] == 0]
我明白了:
TypeError: cannot compare a dtyped [float64] array with a scalar of type [bool]
这里发生了什么?
【问题讨论】:
【参考方案1】:您可以转换列 'a' 或 'b',使它们都是 float64 或 bool。但是,保留特征数据类型的更简单的解决方案是:
DF3 = DF[(DF['a'] == 0) | (DF['b'] == 0)]
一个常见的操作是使用布尔向量来过滤数据。运算符是: |为或,& 为和,~ 为非。 这些必须使用括号进行分组。
【讨论】:
最后我读到了关于括号的粗体字!以上是关于具有多个条件的布尔索引[重复]的主要内容,如果未能解决你的问题,请参考以下文章
具有多个条件的Javascript .split()函数[重复]