如何删除 Pandas 中包含零值的列?

fre*_*021 2 python dataframe python-3.x pandas

我只想保留非零列

df:

Names        Henry    Adam   Rachel  Jug   Jesscia
Robert         54      0        0     6       5
Dan            22      31       0     0       55
Run Code Online (Sandbox Code Playgroud)

预期输出:

Names        Henry         Jesscia
Robert         54              5
Dan            22             55
Run Code Online (Sandbox Code Playgroud)
df.loc[:, (df != 0).any(axis=0)]
did not remove the columns with only one zero value
Run Code Online (Sandbox Code Playgroud)

Anu*_*bas 5

尝试:

df.loc[:,~df.eq(0).any()]
Run Code Online (Sandbox Code Playgroud)

或者

正如所建议的 @sammywemmy

df.loc[:, df.ne(0).all()]
Run Code Online (Sandbox Code Playgroud)

其他可能的解决方案:

df.mask(df.eq(0)).dropna(axis=1)
#OR
df.drop(df.columns[df.eq(0).any()],1)
Run Code Online (Sandbox Code Playgroud)

上面代码的输出:

    Names  Henry  Jesscia
0  Robert     54        5
1     Dan     22       55
Run Code Online (Sandbox Code Playgroud)