当前位置:  开发笔记 > 编程语言 > 正文

布尔索引具有多个条件

如何解决《布尔索引具有多个条件》经验,为你挑选了1个好方法。

我有一个Pandas DF,我需要过滤掉一些包含值== 0的行,用于特征'a'和特征'b'.

为了检查值,我运行以下命令:

DF1 = DF[DF['a'] == 0]

返回正确的值.同样,通过这样做:

DF2 = DF[DF['b'] == 0]

我可以看到特征'b'的0值.

但是,如果我尝试使用OR操作数在单行代码中组合这些2:

DF3 = DF[DF['a'] == 0 |  DF['b'] == 0]

我明白了:

TypeError: cannot compare a dtyped [float64] array with a scalar of type [bool]

这里发生了什么事?



1> Luis Miguel..:

您可以转换列'a'或'b',因此它们都是float64或bool.但是,保留功能数据类型的更简单的解决方案是:

DF3 = DF[(DF['a'] == 0) | (DF['b'] == 0)]

常见的操作是使用布尔向量来过滤数据.运营商是:| for或,&for and,和for for not.必须使用括号对这些进行分组.


最后我读了关于括号的粗体文字!
推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有