首頁 >後端開發 >Python教學 >如何基於多種族列在 Pandas 中建立新的種族分類列?

如何基於多種族列在 Pandas 中建立新的種族分類列?

Linda Hamilton
Linda Hamilton原創
2024-12-20 02:11:09233瀏覽

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

根據 Pandas 中多個列的值建立新欄位

在 Pandas 中,可以根據值存在於多個其他欄位中。當應用複雜的邏輯或自訂函數從資料中獲得有意義的見解時,此功能非常有用。

作為說明性範例,請考慮根據六個種族欄位中的值建立一個標記為「race_label」的新欄位的任務:ERI_西班牙裔、ERI_AmerInd_AKNatv、ERI_亞洲、ERI_Black_Afr.Amer、ERI_HI_PacIsl和ERI_White。要求是使用以下標準根據種族對個人進行分類:

  1. 如果該人被算作西班牙裔,則他們被歸類為「西班牙裔」。
  2. 如果總和所有非西班牙裔種族標誌大於 1,他們被歸類為「兩個或更多」。
  3. 如果該人被計算在內作為美洲印第安人/阿拉斯加原住民,他們被歸類為「A/I AK 原住民」。
  4. 如果此人被算作亞洲人,他們被歸類為「亞洲人」。
  5. 如果此人被算作黑人/非裔美國人,他們被分類為「黑人/AA。」
  6. 如果此人被算作夏威夷原住民/太平洋島民,他們被分類為“Haw/Pac Isl”。
  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() 函數,我們可以創建一個從跨多個列應用的複雜邏輯派生的新列,從而促進高效數據分析和解釋。

以上是如何基於多種族列在 Pandas 中建立新的種族分類列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn