根据 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'
将函数应用到Dataframe:
我们使用 Pandas 中的 apply 函数将自定义函数应用到 dataframe 的每一行:
df['race_label'] = df.apply(label_race, axis=1)
axis=1 参数指定该函数应该是按行应用。
结果:
新列race_label 将包含数据框中每行的计算竞赛类别。
以上是如何使用多个种族列在 Pandas 中创建种族类别列?的详细内容。更多信息请关注PHP中文网其他相关文章!