Heim >Backend-Entwicklung >Python-Tutorial >Wie kann man mehrere Filter effizient auf Pandas-DataFrames und -Serien anwenden?

Wie kann man mehrere Filter effizient auf Pandas-DataFrames und -Serien anwenden?

DDD
DDDOriginal
2024-10-20 11:58:02379Durchsuche

How to Efficiently Apply Multiple Filters to Pandas DataFrames and Series?

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!

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