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!