Pandas の複数の列の値に基づいて新しい列を作成する
問題:
目的は、データフレームの各行のレース カテゴリを決定するカスタム関数を適用することです。いくつかの民族性列の値。人種カテゴリーの優先順位は次のとおりです:
カスタム関数:
各行のレース カテゴリを決定するために、カスタム関数を作成します:
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 の apply 関数を使用して、カスタム関数をデータフレームの各行に適用します:
df['race_label'] = df.apply(label_race, axis=1)
axis=1 引数は、関数が行単位で適用されます。
結果:
新しい列race_labelには、データフレーム内の各行の計算されたレースカテゴリが含まれます。
以上が複数の民族列を使用してパンダで人種カテゴリ列を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。