评估跨 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)
。
我有一个 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)
。