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 サイトの他の関連記事を参照してください。