Effiziente Filterung von Pandas-DataFrames und -Serien
Das Filtern von Daten in Pandas-DataFrames und -Serien ist für die Datenmanipulation und -analyse unerlässlich. Um mehrere Filter effizient anzuwenden, sollten Sie die integrierten Operatoren und die boolesche Indizierung von Pandas nutzen.
Bereitstellen einer Operation und einer Werteliste in einem Wörterbuchformat für einen DataFrame oder eine Serie, wie im folgenden Beispiel gezeigt:
<code class="python">relops = {'>=': [1], '<=': [1]}
So wenden Sie diese Filter an:
<code class="python">import numpy as np def boolean_filter(x, relops): filters = [] for op, vals in relops.items(): op_func = getattr(np, op) for val in vals: filters.append(op_func(x, val)) return x[(np.logical_and(*filters))] ## Example: df = pandas.DataFrame({'col1': [0, 1, 2], 'col2': [10, 11, 12]}) result = boolean_filter(df['col1'], {'>=': [1]}) print(result) ## Output: # col1 # 1 1 # 2 2 # Name: col1</code>
Durch die Verwendung der booleschen Indizierung vermeidet diese Methode unnötiges Kopieren und ist besonders bei großen Datensätzen äußerst effizient.
Das obige ist der detaillierte Inhalt vonWie kann man mehrere Filter effizient auf Pandas-DataFrames und -Serien anwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!