Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich Pandas-Zeilen basierend auf mehreren Teilzeichenfolgen, einschließlich Sonderzeichen, effizient filtern?

Wie kann ich Pandas-Zeilen basierend auf mehreren Teilzeichenfolgen, einschließlich Sonderzeichen, effizient filtern?

Patricia Arquette
Freigeben: 2024-11-28 09:09:15
Original
566 Leute haben es durchsucht

How Can I Efficiently Filter Pandas Rows Based on Multiple Substrings, Including Special Characters?

Pandas: Effizientes Filtern von Zeilen nach mehreren Teilzeichenfolgen

Das Filtern von Pandas-Datenrahmen basierend auf mehreren Teilzeichenfolgen kann eine Herausforderung sein, insbesondere wenn die Teilzeichenfolgen ungewöhnliche Zeichen enthalten . Dieser Artikel bietet eine effiziente Lösung unter Verwendung einer Kombination aus Regex- und Pandas-String-Matching-Funktionen.

Die bereitgestellte Liste von Teilstrings (lst) enthält Elemente mit regulären und Sonderzeichen. Um sie wörtlich zuzuordnen, können wir diese Sonderzeichen mit re.escape maskieren und sie mit einer Regex-Pipe (|) verbinden.

esc_lst = [re.escape(s) for s in lst]
pattern = '|'.join(esc_lst)
Nach dem Login kopieren

Jetzt können wir jede Zeile der Zielspalte (col) effizient überprüfen. gegen das Muster mit str.contains:

col.str.contains(pattern, case=False)
Nach dem Login kopieren

Dieser Ansatz übertrifft die ursprüngliche Lösung, die verschachtelte Schleifen und mehrere str.contains verwendete, deutlich Aufrufe.

Leistungsvergleich

Bei Verwendung eines Datensatzes mit 50.000 Zeichenfolgen mit 20 Zeichen und 100 Teilzeichenfolgen mit 5 Zeichen dauert die vorgeschlagene Methode etwa 1 Sekunde:

%timeit col.str.contains(pattern, case=False)
1 loop, best of 3: 981 ms per loop
Nach dem Login kopieren

Im Vergleich dazu dauerte der ursprüngliche Ansatz etwa 5 Sekunden Datensatz.

Hinweis: Die Zeitangaben stellen Worst-Case-Szenarien dar, bei denen es keine Übereinstimmungen gab. Die vorgeschlagene Methode ist bei Übereinstimmungen sogar noch leistungsfähiger, da sie die Prüfung von Teilzeichenfolgen stoppt, sobald eine Übereinstimmung gefunden wird.

Das obige ist der detaillierte Inhalt vonWie kann ich Pandas-Zeilen basierend auf mehreren Teilzeichenfolgen, einschließlich Sonderzeichen, effizient filtern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage