Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich effizient nach mehreren Teilzeichenfolgen innerhalb einer Pandas-Serie suchen?
Vorhandensein von Teilstrings in Strings mit Pandas DataFrame testen
Bei der Arbeit mit String-Daten in der Pandas-Bibliothek von Python müssen Sie möglicherweise feststellen, ob Ein String enthält einen beliebigen Teilstring aus einer bestimmten Liste. Zwar gibt es verschiedene Funktionen, die das Vorhandensein von Teilzeichenfolgen prüfen, wie z. B. df.isin() und df[col].str.contains(), ihre Kombination in Kombination kann jedoch etwas komplex sein.
Angenommen, wir haben einen Pandas Serien, die Zeichenfolgen wie „cat“, „hat“, „dog“, „fog“ und „pet“ enthalten, und wir möchten alle Zeichenfolgen identifizieren, die entweder „og“ oder enthalten „at.“
Eine Lösung besteht darin, ein Regex-Muster zu verwenden, das mit jedem Teilstring in der Liste übereinstimmt, indem das „|“ verwendet wird. Charakter. Indem wir beispielsweise die Teilzeichenfolgen in „searchfor“ mit „|“ verbinden, erstellen wir einen regulären Ausdruck:
>>> searchfor = ['og', 'at'] >>> regex_pattern = '|'.join(searchfor) >>> s[s.str.contains(regex_pattern)] 0 cat 1 hat 2 dog 3 fog dtype: object
Dieser Ansatz findet effektiv alle Zeichenfolgen in s, die entweder „og“ oder „at“ enthalten. Es ist eine prägnante und effiziente Methode.
Wenn die Teilzeichenfolgen in searchfor jedoch Sonderzeichen wie „$“ oder „^“ enthalten, ist es wichtig, diese mit re.escape() zu maskieren, um eine wörtliche Übereinstimmung sicherzustellen. Zum Beispiel:
>>> import re >>> matches = ['$money', 'x^y'] >>> safe_matches = [re.escape(m) for m in matches] >>> regex_pattern = '|'.join(safe_matches) >>> s[s.str.contains(regex_pattern)] 0 cat 1 hat 2 dog 3 fog dtype: object
Durch das Escapen der Sonderzeichen stellen wir sicher, dass sie jedem Zeichen wörtlich entsprechen, wenn es mit str.contains verwendet wird. Dieser Ansatz bietet eine robuste Lösung für die Teilstringerkennung in der Pandas-Serie.
Das obige ist der detaillierte Inhalt vonWie kann ich effizient nach mehreren Teilzeichenfolgen innerhalb einer Pandas-Serie suchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!