ホームページ > バックエンド開発 > Python チュートリアル > Pandas DataFrame 列の値を条件付きで置換するにはどうすればよいですか?

Pandas DataFrame 列の値を条件付きで置換するにはどうすればよいですか?

DDD
リリース: 2024-12-31 17:13:13
オリジナル
232 人が閲覧しました

How to Conditionally Replace Values in a Pandas DataFrame Column?

Pandas DataFrame での条件付き値の置換

Pandas DataFrame を使用する場合、指定された条件。この質問は、ユーザーがしきい値を超える特定の列の値をゼロに置き換えようとするシナリオを示しています。

最初に、ユーザーは次のアプローチを使用しようとしました:

df[df.my_channel > 20000].my_channel = 0
ログイン後にコピー

しかし、この方法では結果は得られませんでした。これは、Pandas がバージョン 0.20.0 以降 .ix インデクサーを非推奨にしており、ユーザーは代わりに .loc または .iloc インデクサーを使用する必要があるためです。

正しい解決策には、.loc または .iloc を使用して特定の行または列をターゲットにすることが含まれます。そして条件付き置換を実行します。 .loc の使用方法は次のとおりです:

mask = df.my_channel > 20000
column_name = 'my_channel'
df.loc[mask, column_name] = 0
ログイン後にコピー

または、.loc を使用して同じタスクを 1 行で実行できます:

df.loc[df.my_channel > 20000, 'my_channel'] = 0
ログイン後にコピー

マスク変数は、条件を満たす行を識別するのに役立ちます。条件 df.my_channel > 20000、および df.loc[mask, column_name] = 0 は、指定された列の選択された行に 0 を割り当てます。

注: この特定のシナリオでは、代わりに .loc を使用することをお勧めします。 .iloc を使用した整数ベースのブール型インデックス作成は機能しないため、NotImplementedError を回避するために .iloc を削除します。サポートされています。

以上がPandas DataFrame 列の値を条件付きで置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート