首页 > 解决方案 > 如何从包含任何行中的特定值的数据框中删除列

问题描述

在 pandas 数据框中,我需要在任何行中找到包含零的列,然后删除该整列。

例如,如果我的数据框如下所示:

   A  B  C  D  E  F  G  H
0  1  0  1  0  1  1  1  1
1  0  1  1  1  1  0  1  1

我需要删除 A、B、D 和 F 列。我知道如何删除这些列,但是以编程方式识别带有零的列让我望而却步。

标签: pythonpandasdataframefiltering

解决方案


您可以使用.loc对数据框进行切片并对列执行布尔索引,检查其中有哪些:any 0

df.loc[:,~(df==0).any()]

   C  E  G  H
0  1  1  1  1
1  1  1  1  1

或者等效地你可以这样做:

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

推荐阅读