2017-06-17 18 views
1

特定の列名を付けずにセル値に基づいてPandas Dataframeの行を削除するにはどうすればよいですか?例えばセル値に基づいてPandas DataFrameから行を削除

私はこのデータフレームを持っていると私は、セルの値が「D」を含むすべての行を削除したいです。

A B C D 
1 1 2 d 5 
2 1 3 4 0 
3 d 2 1 2 
4 3 2 1 7 

は、だから私はDATAFRAME

A B C D 
2 1 3 4 0 
4 3 2 1 7 

これをachiveする方法はありますで終わりますか?私のGoogleスキルは、特定の列名が必要なソリューションしか見つけられませんでした。

答えて

5

あなたは、このようにそれを行うことができます。

df = df[~df.select_dtypes(['object']).eq('d').any(1)] 

結果:あなたはastypeneallを使用するためにそれを行うことができ

In [23]: df 
Out[23]: 
    A B C D 
2 1 3 4 0 
4 3 2 1 7 
3

別の方法:

df[df.astype(str).ne('d').all(axis=1)] 

出力を:

A B C D 
2 1 3 4 0 
4 3 2 1 7 

別の方法:

df.where(df.values != 'd').dropna() 

出力:

A B C D 
2 1 3 4 0 
4 3 2 1 7 
関連する問題