ホームページ  >  記事  >  バックエンド開発  >  Python の Pandas DataFrame で条件付き列作成を実行するにはどうすればよいですか?

Python の Pandas DataFrame で条件付き列作成を実行するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-20 06:48:29664ブラウズ

How to Perform Conditional Column Creation in Python's Pandas DataFrames?

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 を作成したいとします。 :

  • A が B に等しい場合、C は 0 である必要があります。
  • A が B より大きい場合、C は 1 である必要があります。
  • A が B より小さい場合、C は -1 である必要があります。

カスタム関数の使用

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。