python - 为几个连续列上的相同值设置熊猫数据框的子集
问题描述
我有以下类型的熊猫数据框;
id | a | b | c | d | e | g
---------------------------
1 | 0 | 1 | 0 | 1 | 1 | 1
2 | 0 | 0 | 0 | 0 | 1 | 0
3 | 0 | 0 | 0 | 0 | 1 | 1
我想过滤所有列为零的行,a
通过d
. 我知道这可以通过以下方式实现;
data[data['a']==0 & data['b']==0 & data ['c'] ==0 & data ['d'] ==0]
但是有没有更快的方法使用iloc
或loc
实现相同的目标。例如,我尝试了以下方法;
data.iloc[:,[1:4]==0]
但它给了我以下错误信息;ValueError: Can only index by location with a [integer, integer slice (START point is INCLUDED, END point is EXCLUDED), listlike of integers, boolean array]
任何可以替代我原始解决方案的替代反馈/建议表示赞赏。谢谢
解决方案
你的意思是:
df[df.iloc[:,1:4].eq(0).all(1)]
推荐阅读
- css - flex 容器中的文本列未均匀对齐
- java - 如何使用外部属性文件制作使用 maven shade 制作的可执行 jar
- sparql - 如何获得构造结果以考虑本体
- angular - Angular Production Build 卡在 14%
- android - 如何安全地写入/读取内部文件
- c++ - 从键盘接受树节点以确定它的高度
- sql - 根据先前的行更新存储的记录编号
- r - dplyr 结合计数和过滤器:如何轻松获得正确的列名
- python - 在我的 django 项目生产模式下,除了 domain.com 之外没有其他 url 工作,
- postgresql - 如何指向 Hibernate 在 WHERE 条件下使用哪一列?