ホームページ >バックエンド開発 >Python チュートリアル >複数の既存の列に基づいて Pandas で新しい Race Label 列を作成する方法

複数の既存の列に基づいて Pandas で新しい Race Label 列を作成する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-12-18 20:27:10659ブラウズ

How to Create a New Race Label Column in Pandas Based on Multiple Existing Columns?

Pandas の複数の列の値に基づいて新しい列を作成する

複数の列の値に基づいて Pandas データフレームに新しい列を作成するには他の列では、apply() 関数を利用できます。この関数を使用すると、データフレームの各行にカスタム関数を適用できます。

この場合、次の基準に基づいて人種ラベルを含む新しい列を作成します:

人種ラベル基準:

  • ERI_Hispanic 列が 1 の場合、ラベルは"ヒスパニック"
  • それ以外の場合、残りの ERI 列の合計が 1 より大きい場合、ラベルは "Two or More" になります。
  • それ以外の場合、ERI_AmerInd_AKNatv 列が 1 の場合、ラベルは「A/I AK ネイティブ。」
  • ERI_Asian 列が1、ラベルは「Asian」です。
  • それ以外の場合、ERI_Black_Afr.Amer 列が 1 の場合、ラベルは「Black/AA」です。
  • それ以外の場合、ERI_HI_PacIsl 列が 1 の場合、ラベルはは "Haw/Pac Isl."
  • Else if ERI_White 列は 1、ラベルは「White」です。

レース ラベリングのカスタム関数:

レース ラベリングのカスタム関数を定義するには、次のようにします。次のコードを使用します:

def label_race(row):
   if row['ERI_Hispanic'] == 1:
      return 'Hispanic'
   if row['ERI_AmerInd_AKNatv'] + row['ERI_Asian'] + row['ERI_Black_Afr.Amer'] + row['ERI_HI_PacIsl'] + row['ERI_White'] > 1:
      return 'Two Or More'
   if row['ERI_AmerInd_AKNatv'] == 1:
      return 'A/I AK Native'
   if row['ERI_Asian'] == 1:
      return 'Asian'
   if row['ERI_Black_Afr.Amer'] == 1:
      return 'Black/AA'
   if row['ERI_HI_PacIsl'] == 1:
      return 'Haw/Pac Isl.'
   if row['ERI_White'] == 1:
      return 'White'
   return 'Other'

カスタム関数を適用するapply():

label_race 関数をデータフレームの各行に適用するには、関数を各行に適用することを指定する axis=1 引数を指定して apply() 関数を使用できます。 row:

df['race_label'] = df.apply(label_race, axis=1)

これにより、適切なレース ラベルを含む、race_label という名前の新しい列がデータフレームに作成されます。

以上が複数の既存の列に基づいて Pandas で新しい Race Label 列を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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