制作一个pandas布尔列,它依赖于另外两个布尔列

时间:2017-02-03 17:34:16

标签: python pandas

我的数据框中已经有两个布尔列,lowhigh。然后,我想要定义一个in_range列,它反映了一行中lowhigh列都为false的情况。这是我试过的:

df['in_range'] = not (df.low or df.high)

这会产生错误:

  

ValueError:系列的真值是不明确的。使用a.empty,a.bool(),a.item(),a.any()或a.all()。

我想逐行进行此操作。我尝试添加.bool()会导致此错误:

  

ValueError:只能将大小为1的数组转换为Python标量

我的代码有什么问题,以及根据现有布尔列生成新布尔列的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

使用按位语法:

~(df.low | df.high)

请参阅documentation

  

另一个常见的操作是使用布尔向量来过滤   数据。运营商是:| for or,&为和,和〜为没有。这些   必须使用括号进行分组。

使用布尔向量索引一个系列的工作原理与numpy ndarray完全相同: