2017-08-15 9 views
1

特定の条件が1つのカラムで満たされているデータフレームからすべてのローを削除しようとしています。Pandasデータフレームのフィルタリングは、カラム条件に基づいて行われます

私のデータフレームはこれですとしましょう:

index 'Value 1' 'Grade' 
1   10   2170A 
2   15   2170B 
3   10   NCR2170B 
4   20   NCR2170A 
5   30   NCR2170B 

私は出力がこの

index 'Value 1' 'Grade' 
2   15   2170B 
3   10   NCR2170B 
5   30   NCR2170B 

ように濾過した後、私はそれぞれの行をループ、リストの内包表記を使用して多くの異なるバリエーションを試してみましたしたいです評価する。

data_filtered = data[data['Grade'] == '2170B'] 

しかし、これは明らかにNCR2170Bのようなエントリをミス:私はの線に沿って何かを使用するときにそれを動作させることができます。私はキーのエラーを取得

data_filtered = data['2170B' in data['Grade']] 

は、私のような何かをしようとするたびに 'TRUE'。

私はここで非常に明白な何かが欠けているように感じます。

また、np.whereを使用してみましたが、空の配列を出力します。

答えて

1

あなたは文字列がサブ文字列が含まれているかどうかを確認するためにstr.containsを使用することができます。

df[df.Grade.str.contains('2170B')] 

#index Value 1 Grade 
#1 2  15 2170B 
#2 3  10 NCR2170B 
#4 5  30 NCR2170B 
+1

はそんなに私はそれが私が知らなかったという単純な何かを知っていた、ありがとうございました。すみません、私はPythonには初めてです。 – awsmagala

関連する問題