ホームページ >バックエンド開発 >Python チュートリアル >複数の民族性列に基づいてパンダで新しい人種分類列を作成する方法は?

複数の民族性列に基づいてパンダで新しい人種分類列を作成する方法は?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-20 02:11:09200ブラウズ

How to Create a New Race Classification Column in Pandas Based on Multiple Ethnicity Columns?

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

Pandas では、他の複数の列に存在する値。この機能は、複雑なロジックやカスタム関数を適用してデータから有意義な洞察を引き出す場合に役立ちます。

例として、6 つの民族性列の値に基づいて「race_label」というラベルの付いた新しい列を作成するタスクを考えてみましょう。 : ERI_Hispanic、ERI_AmerInd_AKNatv、ERI_Asian、ERI_Black_Afr.Amer、ERI_HI_PacIsl、およびERI_ホワイト。要件は、次の基準を使用して人種に基づいて個人を分類することです:

  1. その人がヒスパニックとしてカウントされる場合、その人は「ヒスパニック」として分類されます。
  2. の合計がヒスパニック系以外のすべての民族フラグが 1 より大きい場合、それらは「2 つ以上」として分類されます。
  3. その人が次のようにカウントされる場合アメリカインディアン/アラスカ先住民は、「A/I AK 先住民」として分類されます。
  4. その人がアジア人としてカウントされる場合、彼らは「アジア人」として分類されます。
  5. その人が黒人/アフリカ系アメリカ人として数えられる場合、その人は「黒人/AA」として分類されます。
  6. その人がハワイ先住民/太平洋諸島民として数えられる場合、彼らは「ホー/パック島」として分類されます。
  7. その人が白人としてカウントされる場合、その人は「白人」として分類されます。

解決策

これを実現するには、カスタム関数と Pandas apply() 関数の両方を使用します。

  1. カスタム関数を定義します:

    def label_race(row):
       if row['eri_hispanic'] == 1:
          return 'Hispanic'
       if row['eri_afr_amer'] + row['eri_asian'] + row['eri_hawaiian'] + row['eri_nat_amer'] + row['eri_white'] > 1:
          return 'Two Or More'
       if row['eri_nat_amer'] == 1:
          return 'A/I AK Native'
       if row['eri_asian'] == 1:
          return 'Asian'
       if row['eri_afr_amer'] == 1:
          return 'Black/AA'
       if row['eri_hawaiian'] == 1:
          return 'Haw/Pac Isl.'
       if row['eri_white'] == 1:
          return 'White'
       return 'Other'
  2. を使用してカスタム関数を適用します。 Pandas:

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

これにより、Pandas データフレームに「race_label」という新しい列が作成されます。この列には、入力基準に基づいて各行の適切な分類が含まれます。

カスタム関数と Pandas apply() 関数を組み合わせることで、複数の列に適用される複雑なロジックから派生した新しい列を作成できます。効率的なデータ分析と解釈を促進します。

以上が複数の民族性列に基づいてパンダで新しい人種分類列を作成する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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