ホームページ > バックエンド開発 > Python チュートリアル > 条件に基づいて Pandas DataFrame 値を効率的に置き換える方法

条件に基づいて Pandas DataFrame 値を効率的に置き換える方法

Barbara Streisand
リリース: 2024-12-22 09:03:24
オリジナル
689 人が閲覧しました

How to Efficiently Replace Pandas DataFrame Values Based on a Condition?

Pandas DataFrames での条件付き置換

Pandas データフレームでは、条件に基づいて値を置換するのが一般的なタスクです。特定の列の値がしきい値を超えた場合にゼロに設定する必要がある状況を考えてみましょう。

独自のアプローチ:

これを達成するための一般的なアプローチの 1 つは次のとおりです。 df[].ix インデクサーを使用します。これは Pandas バージョン 0.20.0 および 0.20.0 で非推奨になりました。

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

代替ソリューション:

loc および iloc インデクサーの導入により、条件付き置換を実行する推奨方法は次のとおりです。

loc の使用インデクサー:

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

loc インデクサーでは、ブール マスクに基づいて行と列を選択できます。この場合、マスクは df['my_channel'] > となる行を選択します。 20000、およびこれらの行は 'my_channel' 列でゼロに設定されます。

iloc インデクサーの使用:

mask = df['my_channel'] > 20000
df.iloc[mask.index, df.columns.get_loc('my_channel')] = 0
ログイン後にコピー

iloc インデクサーでは、以下に基づいて選択できます。整数インデックス。この場合、マスク インデックスは行の選択に使用され、「my_channel」の列インデックスは値を 0 に設定するために使用されます。

注: この特定のケースでは、 iloc は整数列でのブール型インデックス付けをサポートしていないため、iloc インデクサーよりも loc インデクサーを使用することをお勧めします。

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

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