ホームページ >バックエンド開発 >Python チュートリアル >条件付きしきい値に基づいて Pandas DataFrame の値を効率的に置き換える方法
Pandas での条件付き値の置換
Pandas で DataFrame を操作する場合、多くの場合、特定の条件に基づいて値を選択的に変更する必要があります。一般的なタスクの 1 つは、特定のしきい値を超える特定の列の値を置き換えることです。
df[df.my_channel >] を使用した以前の試み。 20000].my_channel = 0 構文は、元のデータフレームの一部である場合には失敗することが判明しました。これは、.ix インデクサーが非推奨となった Pandas 0.20.0 で導入されたインデックス作成の変更が原因です。
これを修正するには、行と列にアクセスして変更するための代替方法を提供する .loc インデクサーを利用できます。条件に基づきます。
mask = df.my_channel > 20000 column_name = 'my_channel' df.loc[mask, column_name] = 0
このコードは、最初にブール マスク (マスク) を作成することにより、目的の結果を達成します。各値は、df.my_channel 列の対応する値が 20000 を超えるかどうかに対応します。次に、.loc を使用して、マスクが True を保持する行を選択し、column_name 列に値 0 を割り当てます。
代わりにでは、次の 1 行のコード スニペットを使用できます:
df.loc[df.my_channel > 20000, 'my_channel'] = 0
この場合、.iloc の代わりに .loc を使用することが重要です。 (整数位置ベースのインデックス作成) NotImplementedError.
を回避します。以上が条件付きしきい値に基づいて Pandas DataFrame の値を効率的に置き換える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。