Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich effizient nach mehreren Teilzeichenfolgen in einer Pandas-DataFrame-Spalte suchen?

Wie kann ich effizient nach mehreren Teilzeichenfolgen in einer Pandas-DataFrame-Spalte suchen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-30 12:17:11867Durchsuche

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

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!

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