ホームページ >バックエンド開発 >Python チュートリアル >しきい値を超えた Pandas DataFrame 値を効率的にゼロに置き換える方法
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 サイトの他の関連記事を参照してください。