Pandas数据框凝胶所有行,其中一组列等于零

时间:2017-06-12 14:52:01

标签: python pandas dataframe

我在Pandas中很新,我想知道如何获取一组列(并非所有列)等于零的所有行。

例如,如果我有这样的数据框:

my dataframe

我想只返回N和Q行(实际上只有这两行有U和W列)。

我试图做类似的事情:

df.loc[(df == 0).all(axis=1), :]

但是,当然,它并不起作用,因为并非所有列(u和W)都等于零。 我该怎么办?

先谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用子集:

cols = ['X','Y','Z']
df1 = df.loc[(df[cols] == 0).all(axis=1), :]
print (df1)
   U  W  X  Y  Z
1  c  d  0  0  0
4  i  j  0  0  0

也可以使用:

exclude = ['U', 'W']
cols = df.columns.difference(exclude)
print (cols)
Index(['X', 'Y', 'Z'], dtype='object')

df1 = df.loc[(df[cols] == 0).all(axis=1), :]
print (df1)
   U  W  X  Y  Z
1  c  d  0  0  0
4  i  j  0  0  0