首頁 >後端開發 >Python教學 >如何基於多個現有列在 Pandas 中建立新的種族標籤列?

如何基於多個現有列在 Pandas 中建立新的種族標籤列?

Susan Sarandon
Susan Sarandon原創
2024-12-18 20:27:10661瀏覽

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

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

根據多個Pandas 中的值在Pandas 資料框中建立新列其他列,我們可以利用apply() 函數。此函數允許我們將自訂函數應用於資料幀的每一行。

在這種情況下,我們希望根據以下條件建立一個帶有種族標籤的新欄位:

種族標籤標準:

  • 如果ERI_Hispanic 列為1,則標籤為「西班牙裔。」
  • 否則,如果剩餘ERI列的總和大於 1,則標籤為「兩個或更多」。
  • 否則,如果 ERI_AmerInd_AKNatv 列為 1,則標籤為「兩個或更多」。 「A/I AK Native.」
  • 否則,如果 ERI_Asian 列為 1,則標籤為「亞洲人」。
  • 否則,如果 ERI_Black_Afr.Amer 列為 1,則標籤為「黑人/AA」。
  • 否則,如果 ERI_HI_PacIsl 列為 1,則標籤為「Haw」 /Pac Isl."
  • 否則如果 ERI_White 列為 1,則標籤為「白色。 」

種族標籤的自訂函數:

要定義種族標籤的自訂函數,我們可以使用以下程式碼:

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 中建立新的種族標籤列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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