删除值为 0 或 999999 的列

Remove columns with values 0 or 999999

我正在处理一个包含 400 列的大型数据集,其中一些列的值全为零,而其他列的值全为零,只有少数 '999999999'。我想摆脱这样的专栏。我能够对仅包含零的列执行此操作,但不确定能否对包含零和 '999999999'

的列执行此操作

以下是删除零的代码-

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

我知道这很简单。但是,如果有人可以帮助我完成下一部分,那就太棒了。谢谢

这应该有效:

df = df.loc[:, ((df != 0) & (df != 999999999)).any(axis=0)]

示例:

>>> df
           a  b  c
0          0  0  1
1          0  0  0
2  999999999  0  5


>>> df.loc[:, ((df != 0) & (df != 999999999)).any(axis=0)]
   c
0  1
1  0
2  5

您可以使用 .isin() 以多个值为条件:

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