我有一个 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 的行?
最佳答案
如果您有一个 DataFrame,其中所有列都是 bool 值(就像您在问题末尾提到的切片一样,您可以按行将 all
应用于它:
d = data.iloc[:, 5:12]
d[d.all(axis=1)]
这将选择所有列都具有 bool 真值的行。
如果您只需要 bool 列来告诉您是否包含行,则只需 d.all(axis=1)
。
关于python - 评估 Pandas DataFrame 中的 bool 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28772090/