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

Linda Hamilton
リリース: 2024-10-20 06:48:29
オリジナル
663 人が閲覧しました

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

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!