ホームページ >バックエンド開発 >Python チュートリアル >しきい値を超えた Pandas DataFrame 値を効率的にゼロに置き換える方法

しきい値を超えた Pandas DataFrame 値を効率的にゼロに置き換える方法

Barbara Streisand
Barbara Streisandオリジナル
2024-12-17 00:21:25701ブラウズ

How to Efficiently Replace Pandas DataFrame Values Exceeding a Threshold with Zero?

Pandas の条件付き置換

DataFrame を操作するとき、特定の基準を満たす値を置換する必要が生じる場合があります。この質問は、特定の列内でしきい値を超える値をゼロに置き換える方法に対処することを目的としています。

元のアプローチと制限

最初のアプローチでは、構文 df を使用しようとしました。 [df.my_channel > 20000].my_channel = 0。ただし、この方法では、ユーザーが確認したように、元の DataFrame 内で作業するときに問題が発生します。

.loc Indexer を使用した解決策

Toこの問題を解決するには、Pandas の新しいバージョンで推奨されている .loc インデクサーを利用できます。この構文により、行と列の正確な選択と変更が可能になります。目的の置換を実現するには、次のコードを使用できます:

mask = df.my_channel > 20000
column_name = 'my_channel'
df.loc[mask, column_name] = 0

または、コードを 1 行に圧縮することもできます:

df.loc[df.my_channel > 20000, 'my_channel'] = 0

説明

マスク変数は、df.my_channel が 20000 を超える行を選択します。その後、df.loc[mask, column_name] = 0 により、マスクが True の行の my_channel 列が 0 に設定されます。

を使用することが必須です。この場合は .loc インデクサーです。整数型の列にブール型インデックスを付けて .iloc を使用すると、 NotImplementedError.

以上がしきい値を超えた Pandas DataFrame 値を効率的にゼロに置き換える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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