首页 > 解决方案 > 为几个连续列上的相同值设置熊猫数据框的子集

问题描述

我有以下类型的熊猫数据框;

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]

但是有没有更快的方法使用ilocloc实现相同的目标。例如,我尝试了以下方法;

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]

任何可以替代我原始解决方案的替代反馈/建议表示赞赏。谢谢

标签: pythonpandas

解决方案


你的意思是:

df[df.iloc[:,1:4].eq(0).all(1)]

推荐阅读