Dachte, das wäre einfach, hätte aber Schwierigkeiten, einen eleganten Weg zu finden, alle Spalten in einem Datenrahmen gleichzeitig nach einer Teilzeichenkette abzusuchen. Wie würde ich df['col1'].str.contains('^')
auf einen ganzen Datenrahmen gleichzeitig anwenden und nach Zeilen filtern, die Datensätze enthalten, die die Übereinstimmung enthalten?
Die Series.str.contains
-Methode erwartet (standardmäßig) ein Regex-Muster, keine literale Zeichenfolge. Daher entspricht str.contains("^")
dem Anfang einer beliebigen Zeichenfolge. Da jeder String einen Anfang hat, stimmt alles überein. Verwenden Sie stattdessen str.contains("\^")
, um das Literalzeichen ^
zu finden.
Um jede Spalte zu überprüfen, könnten Sie for col in df
verwenden, um die Spaltennamen zu durchlaufen und dann str.contains
für jede Spalte aufzurufen:
Alternativ können Sie regex=False
an str.contains
übergeben, damit der Test den Operator Python in
verwendet. aber (im Allgemeinen) mit Regex ist schneller.