根據 Pandas 中多個列的值建立新欄位
在 Pandas 中,可以根據值存在於多個其他欄位中。當應用複雜的邏輯或自訂函數從資料中獲得有意義的見解時,此功能非常有用。
作為說明性範例,請考慮根據六個種族欄位中的值建立一個標記為「race_label」的新欄位的任務:ERI_西班牙裔、ERI_AmerInd_AKNatv、ERI_亞洲、ERI_Black_Afr.Amer、ERI_HI_PacIsl和ERI_White。要求是使用以下標準根據種族對個人進行分類:
解
為了實現這一點,自訂函數和 Pandas apply()函數都是
定義自訂函數:
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'
應用自訂函數Pandas:
df['race_label'] = df.apply(label_race, axis=1)
這將在Pandas 資料框中建立一個名為「race_label」的新列,其中包含基於輸入條件的每行的適當分類。
透過結合自訂函數和 Pandas apply() 函數,我們可以創建一個從跨多個列應用的複雜邏輯派生的新列,從而促進高效數據分析和解釋。
以上是如何基於多種族列在 Pandas 中建立新的種族分類列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!