首頁  >  文章  >  後端開發  >  如何有效地將多個過濾器應用於 Pandas DataFrames 和 Series?

如何有效地將多個過濾器應用於 Pandas DataFrames 和 Series?

DDD
DDD原創
2024-10-20 11:58:02302瀏覽

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

Pandas DataFrames 和 Series 的高效過濾

過濾 Pandas DataFrames 和 Series 中的資料對於資料操作和分析至關重要。若要有效地套用多個篩選器,請考慮利用 Pandas 的內建運算子和布林索引。

對於DataFrame 或Series,以字典格式提供操作和值列表,如下例所示:

<code class="python">relops = {'>=': [1], '<=': [1]}

要套用這些過濾器:

<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>

透過利用布林索引,此方法避免了不必要的複製,並且效率很高,尤其是對於大型資料集。

以上是如何有效地將多個過濾器應用於 Pandas DataFrames 和 Series?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn