Python での条件付きロジックに基づく列の作成
Pandas DataFrame を使用する場合、新しい列を作成する必要があるシナリオによく遭遇します。既存の列間の条件チェックに基づく列。これは、ネストされた条件を指定した np.where 関数を使用して実現できます。
例として、次の DataFrame について考えます。
<code class="python">import pandas as pd df = pd.DataFrame({ "A": [2, 3, 1], "B": [2, 1, 3] })</code>
次の基準に基づいて新しい列 C を作成したいとします。 :
カスタム関数の使用
1 つの方法は、条件付きロジックを実装するカスタム関数を作成し、それをDataFrame:
<code class="python">def f(row): if row['A'] == row['B']: return 0 elif row['A'] > row['B']: return 1 else: return -1 df['C'] = df.apply(f, axis=1)</code>
np.where の使用
または、np.where 関数を使用して新しい列に値を直接割り当てることもできます:
<code class="python">df['C'] = np.where(df['A'] == df['B'], 0, np.where(df['A'] > df['B'], 1, -1))</code>
このアプローチはベクトル化されており、大規模なデータセットに対してより効率的です。
結果:
どちらのアプローチでも次の結果が生成されます:
<code class="python">print(df) A B C 0 2 2 0 1 3 1 1 2 1 3 -1</code>
以上がPython の Pandas DataFrame で条件付き列作成を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。