2017-08-15 1 views
1

Ich versuche, alle Zeilen aus einem Datenrahmen zu entfernen, wo eine bestimmte Bedingung in einer Spalte erfüllt ist.Pandas Data Frame-Filterung basierend auf einer Spaltenbedingung

Lässt meine Datenrahmen sagen, ist dies:

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

ich die Ausgabe wollen, nachdem diese

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

ich viele verschiedene Varianten des Verwendens Liste Verständnis versucht haben, durch jede Zeile looping und evaluieren. Ich kann es funktioniert, wenn ich etwas entlang der Linien von verwenden:

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

Aber dies offensichtlich verfehlten Einträgen wie NCR2170B.

Jedes Mal, wenn ich versuche, so etwas wie:

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

I Schlüsselfehlermeldung erhalten: 'True'.

Ich fühle mich, als würde ich etwas sehr offensichtlich hier vermissen.

Ich habe auch versucht, np.where, aber es gibt nur ein leeres Array.

Antwort

1

können Sie str.contains verwenden, um zu überprüfen, ob eine String-Spalte eine Teilzeichenkette enthält:

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

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

Thank you so viel wusste ich, es war etwas einfach, dass ich nicht bewusst war. Tut mir leid, ich bin neu in Python. – awsmagala

Verwandte Themen