Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich effizient nach mehreren Teilstring-Einschlüssen in Pandas suchen?
Bei Pandas besteht die Notwendigkeit zu bestimmen, ob ein String einen der in einer Liste vorhandenen Teilstrings enthält. Um dieses Problem zu beheben, könnte eine Kombination aus df.isin() und df[col].str.contains() eingesetzt werden. Dieser Ansatz gilt jedoch als umständlich.
Ein verfeinerterer Ansatz beinhaltet die Nutzung des | (Pipe-)Zeichen in regulären Ausdrücken, um mehrere Teilzeichenfolgen gleichzeitig abzugleichen. Bei dieser Technik werden die Teilzeichenfolgen in der Liste mithilfe von '|'.join() verkettet:
searchfor = ['og', 'at'] s[s.str.contains('|'.join(searchfor))]
Dieser Ansatz identifiziert effizient Zeichenfolgen, die mit einem der angegebenen Teilzeichenfolgen übereinstimmen, was zu einem verfeinerten Ergebnis führt:
0 cat 1 hat 2 dog 3 fog dtype: object
Beim Umgang mit Teilzeichenfolgen, die Sonderzeichen wie $ und enthalten, ist Vorsicht geboten ^ die in regulären Ausdrücken bestimmte Bedeutungen haben. Um eine wörtliche Übereinstimmung sicherzustellen, verwenden Sie re.escape(), um diese Zeichen zu maskieren:
import re matches = ['$money', 'x^y'] safe_matches = [re.escape(m) for m in matches] s[s.str.contains('|'.join(safe_matches))]
Das obige ist der detaillierte Inhalt vonWie kann ich effizient nach mehreren Teilstring-Einschlüssen in Pandas suchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!