Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich effizient nach mehreren Teilzeichenfolgen innerhalb einer Pandas-Serie suchen?

Wie kann ich effizient nach mehreren Teilzeichenfolgen innerhalb einer Pandas-Serie suchen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-14 15:04:11701Durchsuche

How Can I Efficiently Check for Multiple Substrings Within a Pandas Series?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn