python - 如何根据 Pandas 中一系列列的特定条件选择行

标签 python pandas numpy

假设,我有以下数据框:

A B C D E F
1 1 1 0 0 0
0 0 0 0 0 0
1 1 0.9 1 0 0
0 0 0 0 -1.95 0
0 0 0 0 2.75 0
1 1 1 1 1 1

我想根据 C、D、E 和 F 列选择只有 0 和 1 (0 & 1) 的行。对于这个例子,预期的输出是

 A B C D E F
 1 1 1 0 0 0

我如何考虑 pandas 中的一系列列来做到这一点?

提前致谢。

最佳答案

让我们尝试使用 loc 进行 bool 索引来过滤行:

c = ['C', 'D', 'E', 'F']
df.loc[df[c].isin([0, 1]).all(1) & df[c].eq(0).any(1) & df[c].eq(1).any(1)]

结果:

   A  B    C  D    E  F
0  1  1  1.0  0  0.0  0

关于python - 如何根据 Pandas 中一系列列的特定条件选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65447654/

相关文章:

python - 尝试导入 scipy.stats 时出错 : No module named dual

python - Scipy - Nan 计算马氏距离时

python - pymysql如何为存储过程传递参数

python - 使用 BeautifulSoup4 (python 3.4) 删除所有 HTML 标签

python-2.7 - 按名称访问 Pandas MultiIndex 列

python - MATLAB 在矩阵中使用方括号、分号和单引号

python - 将多个值插入数据库

python - 如何使用 python SDK 从 Azure Batch 计算节点检索 stdout/stderr.txt 文件?

python - Pandas 拆分列,其条目是我自己的类

python - 在 Python Pandas DataFrame 中插入行