Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich effizient nach mehreren Teilstring-Einschlüssen in Pandas suchen?

Wie kann ich effizient nach mehreren Teilstring-Einschlüssen in Pandas suchen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-05 01:29:14888Durchsuche

How Can I Efficiently Check for Multiple Substring Inclusions in Pandas?

Testen der Einbeziehung von String-Teilstrings mit Pandas

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.

Eine verbesserte Lösung

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

Umgang mit Sonderzeichen

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!

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