根据 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中文网其他相关文章!