Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich effizient nach mehreren Teilzeichenfolgen in einer Pandas-DataFrame-Spalte suchen?
Testen der Teilstringpräsenz im Pandas DataFrame unter Verwendung mehrerer Teilstrings
In Pandas die Kombination von df.isin() und df[col].str. Die Verwendung von „contains()“, um zu überprüfen, ob eine Zeichenfolge eine Teilzeichenfolge in einer Liste enthält, kann mühsam sein. Dieser Artikel bietet eine alternative Lösung unter Verwendung regulärer Ausdrücke und der Methode str.contains().
Betrachten Sie zur Veranschaulichung eine Reihe s, die ['cat','hat','dog','fog',' Haustier']. Um alle Elemente zu finden, die entweder „og“ oder „at“ enthalten, außer „pet“, kann der folgende Code verwendet werden:
searchfor = ['og', 'at'] jointed_regex = '|'.join(searchfor) s[s.str.contains(jointed_regex)]
Die Ausgabe lautet:
0 cat 1 hat 2 dog 3 fog dtype: object
Indem Sie die Teilzeichenfolgen mit einem „|“ verbinden Zeichen kann die Methode str.contains() effektiv alle Teilzeichenfolgen innerhalb der Zeichenfolgenelemente abgleichen.
Umgang mit Sonderzeichen
Beachten Sie dies beim Umgang mit Teilzeichenfolgen, die Sonderzeichen enthalten B. $ oder ^, müssen diese mit re.escape() maskiert werden. Dadurch wird sichergestellt, dass die Zeichen während des Abgleichvorgangs wörtlich interpretiert werden.
Wenn searchfor beispielsweise ['money', 'x^y'] enthält:
import re safe_searchfor = [re.escape(m) for m in searchfor] s[s.str.contains('|'.join(safe_searchfor))]
Dieser Code entgeht dem Sonderzeichen und sorgt für eine genaue Übereinstimmung der Teilzeichenfolgen.
Das obige ist der detaillierte Inhalt vonWie kann ich effizient nach mehreren Teilzeichenfolgen in einer Pandas-DataFrame-Spalte suchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!