ホームページ  >  記事  >  バックエンド開発  >  Pandas DataFrames とシリーズに複数のフィルターを効率的に適用する方法

Pandas DataFrames とシリーズに複数のフィルターを効率的に適用する方法

DDD
DDDオリジナル
2024-10-20 11:58:02302ブラウズ

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

Pandas DataFrame およびシリーズの効率的なフィルタリング

Pandas DataFrame およびシリーズのデータ​​のフィルタリングは、データの操作と分析に不可欠です。複数のフィルターを効率的に適用するには、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 とシリーズに複数のフィルターを効率的に適用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。