python - 评估 Pandas DataFrame 中的 bool 表达式

标签 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 的行?

最佳答案

如果您有一个 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/

相关文章:

python - 在 Python 库中存储 OAuth token

python - 如何使用open cv python检测楼梯?

python - Scikit-learn,随机森林——每棵树包含多少个样本?

python - 错误 "not all arguments converted during string formatting"这里出了什么问题?

python - 在 Pandas 中将字符串转换为时间

python - 使用 json 序列化查询集的结果引发错误 :

python - Pandas 按坐标合并

python - 与 pandas 的一对多、左、外连接 (Python)

python - 创建一个函数来计算不同年份的中位数成本

python - 试图在 python 3 中获取所有不等于 0.000000 的列值