评估跨 Pandas DataFrame 的布尔表达式

Evaluating boolean expression across Pandas DataFrame

我有一个 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)

有更简单的方法吗?例如。我只能通过 select 这些专栏

data.iloc[:,5:12]

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

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

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

这将 select 行,其中所有列都具有布尔真值。

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