python - Pandas 数据框获取一组列等于零的所有行

标签 python pandas dataframe

如何获取一组列(不是全部)为零的所有行?

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

my dataframe

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

我正在尝试做类似的事情:

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

但是,当然,它不起作用,因为并非所有列(u 和 W)都等于 0。

我该怎么做?

最佳答案

您可以使用子集:

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

关于python - Pandas 数据框获取一组列等于零的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44502457/

相关文章:

python - 如何使用groupby获取与列的最大值对应的所有行

python3 - super() 在多重继承上的行为

python - Pygame 找不到所需的字体

python - Matplotlib:将网格线保留在图形后面,但 y 轴和 x 轴在上面

python - 设置索引对特定列进行排序 pandas

python - Pandas - groupby 具有另一列条件的列

r - 如何在 R 中划分缺失数据的不等数据帧

python - 在 Python 中浏览字典

python - 如果列表中有文本,则用值替换某些文本

python - 只能比较相同标签的 Series 对象 Pandas Python