评估Pandas DataFrame中的布尔表达式

时间:2015-02-27 18:43:23

标签: python pandas

我有一个pandas DataFrame“data”,其中的列包含“cond1”,“cond2”,“cond3”,“cond4”,“cond5”,“cond6”,“cond7”,每个都包含True / False

我想添加另一个列table [“condMet”],它将包含True / False,具体取决于是否满足所有7个条件。

目前我有这个达到了这个目的:

data["condMet"] = (data.cond1 == True) & (data.cond2 == True) &    (data.cond3     == True) & (data.cond4 == True) & (data.cond5 == True) & (data.cond6 == True) &  (data.cond7 == True)

有更简单的方法吗?例如。我只能通过

选择这些列
data.iloc[:,5:12]

我现在如何将其切片以仅包含所有列都为TRUE的行?

1 个答案:

答案 0 :(得分:1)

如果您有一个DataFrame,其中所有列都是布尔值(就像您在问题末尾提到的切片一样,您可以逐行应用all

d = data.iloc[:, 5:12]
d[d.all(axis=1)]

这将选择所有列都具有布尔值true的行。

如果您只想要布尔列来告诉您行是否包含在内,那只是d.all(axis=1)