Heim >Backend-Entwicklung >Python-Tutorial >Wie können reguläre Ausdrücke die Pandas-Filterung für mehrere Teilzeichenfolgen in einer Serie optimieren?

Wie können reguläre Ausdrücke die Pandas-Filterung für mehrere Teilzeichenfolgen in einer Serie optimieren?

Linda Hamilton
Linda HamiltonOriginal
2024-11-28 11:26:11706Durchsuche

How Can Regular Expressions Optimize Pandas Filtering for Multiple Substrings in a Series?

Pandas-Filteroptimierung für mehrere Teilstrings in Serie

Hintergrund

Filtern großer Pandas-Datenrahmen basierend auf mehreren Teilstrings in einem String Spalte kann ein rechenintensiver Vorgang sein. Der herkömmliche Ansatz besteht darin, für jeden Teilstring eine Maske anzuwenden und diese dann mithilfe logischer Operationen zu reduzieren.

Vorgeschlagener Ansatz

Um die Effizienz zu steigern, empfehlen wir die Nutzung regulärer Ausdrücke (mit Escapezeichen). Sonderzeichen) für den Teilstring-Abgleich. Indem wir die maskierten Teilzeichenfolgen mit einer Regex-Pipe (|) verbinden, können wir jede Teilzeichenfolge mit der Zeichenfolge testen, bis eine Übereinstimmung gefunden wird.

Implementierung

import re

# Escape special characters in substrings
esc_lst = [re.escape(s) for s in lst]

# Join escaped substrings using regex pipe
pattern = '|'.join(esc_lst)

# Filter based on concatenated pattern
df[col].str.contains(pattern, case=False)

Überlegungen zur Leistung

Die Leistung wird verbessert, indem die Anzahl der erforderlichen Tests pro Zeile reduziert wird. Die Methode prüft Teilzeichenfolgen, bis eine Übereinstimmung gefunden wird, wodurch unnötige Iterationen vermieden werden.

Benchmarking

Unter Verwendung eines Beispieldatenrahmens mit 50.000 Zeichenfolgen und 100 Teilzeichenfolgen dauert die vorgeschlagene Methode etwa eine Sekunde, im Vergleich zu den fünf Sekunden des herkömmlichen Ansatzes. Dieser Leistungsvorteil würde mit einem größeren Datensatz zunehmen.

Fazit

Durch die Nutzung regulärer Ausdrücke mit maskierten Sonderzeichen können wir Pandas-Datenrahmen effizient nach mehreren Teilzeichenfolgen filtern und so die Datenmenge erheblich reduzieren Rechenaufwand.

Das obige ist der detaillierte Inhalt vonWie können reguläre Ausdrücke die Pandas-Filterung für mehrere Teilzeichenfolgen in einer Serie optimieren?. 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