删除值为0或999999的列

时间:2016-03-30 16:36:45

标签: python python-3.x pandas data-analysis

我正在使用包含400列的大型数据集,其中一些列的所有值都为零,而其他列的全部为零且“999999999”为零。我想摆脱这样的专栏。我能够为仅包含零的列执行此操作但不确定为包含零的列和'999999999'

执行此操作

以下是删除零的代码 -

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

我知道这很简单。但是,如果有人能够帮助我完成下一个非常棒的部分。谢谢

2 个答案:

答案 0 :(得分:3)

您可以使用.isin()来调整多个值:

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

答案 1 :(得分:1)

这应该有效:

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