选择pandas Dataframe 中所有条目为零的列

b09cbbtk  于 2023-03-28  发布在  其他
关注(0)|答案(2)|浏览(117)

给定一个 Dataframe df,如何找出所有值为0的列?

0  1  2  3  4  5  6  7
0  0  0  0  1  0  0  1  0
1  1  1  0  0  0  1  1  1

预期产出

2  4
0  0  0
1  0  0
6uxekuva

6uxekuva1#

我只是将值与0进行比较,并使用.all()

>>> df = pd.DataFrame(np.random.randint(0, 2, (2, 8)))
>>> df
   0  1  2  3  4  5  6  7
0  0  0  0  1  0  0  1  0
1  1  1  0  0  0  1  1  1
>>> df == 0
       0      1     2      3     4      5      6      7
0   True   True  True  False  True   True  False   True
1  False  False  True   True  True  False  False  False
>>> (df == 0).all()
0    False
1    False
2     True
3    False
4     True
5    False
6    False
7    False
dtype: bool
>>> df.columns[(df == 0).all()]
Int64Index([u'2', u'4'], dtype=int64)
>>> df.loc[:, (df == 0).all()]
   2  4
0  0  0
1  0  0
inkz8wg9

inkz8wg92#

另一种方法是mask非零值并删除所有值都被屏蔽的列。

df1 = df.mask(df != 0).dropna(axis=1)

# or filter the entire frame
df1 = df[df.eq(0)].dropna(axis=1)

相关问题