2016-03-30 7 views
3

私は400カラムの大きなデータセットを扱っていますが、カラムのいくつかはすべてゼロの値を持ち、他のカラムはゼロがすべて '999999999'しかありません。私はそのような列を取り除きたい。私はちょうどゼロを含む列のためにそれを行うことができたが、ゼロを含む列のためにそれを行うには鍬と「999999999」値が0または999999のカラムを削除する

後はzeroes-

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

を除去するためのコードであることを確認していないことは非常に簡単です知っている。しかし誰かが次の部分で私を助けることができるなら、それはすばらしいでしょう。おかげ

+0

データが中に含まれているでしょうか? –

答えて

2

あなたは、いくつかの値に調整するように.isin()を使用することができます。

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

SyntaxError:構文が正しくありません –

+0

そうですが、 '〜'ではなく '〜'が必要です。 – Stefan

+0

それはあなたの人が素晴らしいです! – Uasthana

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 
関連する問題