Heim > Backend-Entwicklung > Python-Tutorial > So filtern Sie Pandas-DataFrames und -Serien effizient anhand mehrerer Kriterien

So filtern Sie Pandas-DataFrames und -Serien effizient anhand mehrerer Kriterien

Susan Sarandon
Freigeben: 2024-10-20 12:18:30
Original
260 Leute haben es durchsucht

How to Efficiently Filter Pandas DataFrames and Series Using Multiple Criteria

Effizientes Anwenden mehrerer Filter auf Pandas-Datenrahmen und -Serien

Bei der Arbeit mit Daten in Pandas ist es häufig erforderlich, nach mehreren Kriterien zu filtern. Während der traditionelle Ansatz die Verkettung mehrerer reindex()-Operationen beinhaltet, erstellt diese Technik neue Objekte und kopiert Daten, was zu Ineffizienz führt.

Ein alternativer Ansatz ist die Verwendung der booleschen Indizierung, die deutlich effizienter ist. Pandas ermöglicht eine boolesche Indizierung und ermöglicht so eine direkte Unterteilung von Daten auf der Grundlage von Wahr/Falsch-Bewertungen.

<code class="python">df.loc[df['col1'] >= 1, 'col1']</code>
Nach dem Login kopieren

Diese Technik vermeidet die Erstellung neuer Objekte und unnötiges Kopieren und bietet so eine effizientere Möglichkeit zum Filtern von Daten.

Um die Effizienz weiter zu steigern, kann man zu diesem Zweck Hilfsfunktionen schreiben:

<code class="python">def b(x, col, op, n): 
     return op(x[col],n)

def f(x, *b):
     return x[(np.logical_and(*b))]</code>
Nach dem Login kopieren

Mit diesen Hilfsfunktionen wird die Anwendung mehrerer Filter unkompliziert:

<code class="python">b1 = b(df, 'col1', ge, 1)
b2 = b(df, 'col1', le, 1)
f(df, b1, b2)</code>
Nach dem Login kopieren

Für Pandas-Versionen 0.13 und höher bietet eine dedizierte Abfragemethode eine noch effizientere Möglichkeit, mehrere Filter anzuwenden und numexpr für Optimierungen zu nutzen:

<code class="python">df.query('col1 <= 1 & 1 <= col1')</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo filtern Sie Pandas-DataFrames und -Serien effizient anhand mehrerer Kriterien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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