Pandas で If-Else-Else 条件を使用した列を作成する
if-elif-else 条件に基づいて新しい列を作成するには2 つの主なアプローチがあります:
非ベクトル化アプローチ
このアプローチには、行を操作する関数の定義が含まれます。
<code class="python">def f(row): if row['A'] == row['B']: val = 0 elif row['A'] > row['B']: val = 1 else: val = -1 return val</code>
次に行に沿ってデータフレームに適用します。
<code class="python">df['C'] = df.apply(f, axis=1)</code>
ベクトル化アプローチ
ベクトル化アプローチでは、np.where を利用して新しい列を直接作成します。
<code class="python">df['C'] = np.where( df['A'] == df['B'], 0, np.where( df['A'] > df['B'], 1, -1)) </code>
このアプローチは、大規模なデータセットの場合により効率的です。
提供されたデータフレームを使用した例を次に示します:
入力データフレーム
A | B |
---|---|
2 | 2 |
3 | 1 |
1 | 3 |
出力データフレーム
A | B | C |
---|---|---|
2 | 2 | 0 |
3 | 1 | 1 |
1 | 3 | -1 |
以上がPandas で If-Else-Else 条件に基づいて列を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。