2017-11-24 1 views
0

Ich habe einen Pandas Datenrahmen, die wie folgt aussieht:Wie lösche Zeilen in einem Pandas-Datenrahmen, wenn sie Werte aus einer Liste enthalten?

Beer   Rating 
0 Heineken  Good 
1 Budweiser  Bad 
2 Coors Light  Bad 

und eine Liste, die wie folgt aussehen:

bad_beers = ["Light", "0.0%"] 

Wie jede Zeile in einem Pandas Datenrahmen zu löschen, die eine bestimmte Zeichenfolge enthält eine Liste?

Die gewünschte Ausgabe sollte wie folgt aussehen:

Beer  Rating 
0 Heineken Good 
1 Budweiser Bad 
+0

Dieses Beispiel hat einen Fokus auf Spalten, meins auf Zeilen – sudonym

+0

Ich glaube nicht ... die oberste Antwort ist das Filtern auf Zeilen. –

Antwort

2

Wir str.contains

df[~df.Beer.str.contains('Light')] 
Out[364]: 
     Beer Rating 
0 Heineken Good 
1 Budweiser Bad 

verwenden können, wenn die Liste mit mehr Elemente enthalten | .

df[~df.Beer.str.contains('Light|Heineken')] 
Out[365]: 
     Beer Rating 
1 Budweiser Bad 
+0

Was, wenn Sie das für jede Spalte tun möchten? Das "Bier" ausschließen funktioniert nicht. Können Sie die gleiche Syntax verwenden? Oder ist es besser, ein Lambda zu verwenden? –

+1

@ApoloRadomer Ich werde empfehlen gelten Lambda – Wen

+0

Ich werde eine Frage stellen. Da ich die Col-Namen nicht verwenden kann. Ich habe sie nicht im Datenrahmen definiert. –

Verwandte Themen