python pandas series想赋予新的值_Python-pandas根据其他列的值创建新列/逐行应用多列的功能...

我想申请我的自定义函数(它使用的if-else梯)这六个列(ERI_Hispanic,ERI_AmerInd_AKNatv,ERI_Asian,ERI_Black_Afr.Amer,ERI_HI_PacIsl,ERI_White我的数据帧的每一行中)。

我尝试了与其他问题不同的方法,但似乎仍然找不到适合我问题的正确答案。关键在于,如果该人被视为西班牙裔,就不能被视为其他任何人。即使他们在另一个种族栏中的得分为“ 1”,他们仍然被视为西班牙裔,而不是两个或两个以上的种族。同样,如果所有ERI列的总和大于1,则将它们计为两个或多个种族,并且不能计为唯一的种族(西班牙裔除外)。希望这是有道理的。任何帮助将不胜感激。

几乎就像在每一行中进行for循环一样,如果每条记录都符合条件,则将它们添加到一个列表中并从原始列表中删除。

从下面的数据框中,我需要根据以下SQL规范来计算新列:

===================================================== =======

IF [ERI_Hispanic] = 1 THEN RETURN “Hispanic”

ELSE IF SUM([ERI_AmerInd_AKNatv] + [ERI_Asian] + [ERI_Black_Afr.Amer] + [ERI_HI_PacIsl] + [ERI_White]) > 1 THEN RETURN “Two or More”

ELSE IF [ERI_AmerInd_AKNatv] = 1 THEN RETURN “A/I AK Native”

ELSE IF [ERI_Asian] = 1 THEN RETURN “Asian”

ELSE IF [ERI_Black_Afr.Amer] = 1 THEN RETURN “Black/AA”

ELSE IF [ERI_HI_PacIsl] = 1 THEN RETURN “Haw/Pac Isl.”

ELSE IF [ERI_White] = 1 THEN RETURN “White”

评论:如果西班牙裔ERI标志为True(1),则该雇员被分类为“西班牙裔”

注释:如果超过1个非西班牙ERI标志为真,则返回“两个或更多”

======================数据帧===========================

lname fname rno_cd eri_afr_amer eri_asian eri_hawaiian eri_hispanic eri_nat_amer eri_white rno_defined

0 MOST JEFF E 0 0 0 0 0 1 White

1 CRUISE TOM E 0 0 0 1 0 0 White

2 DEPP JOHNNY 0 0 0 0 0 1 Unknown

3 DICAP LEO 0 0 0 0 0 1 Unknown

4 BRANDO MARLON E 0 0 0 0 0 0 White

5 HANKS TOM 0 0 0 0 0 1 Unknown

6 DENIRO ROBERT E 0 1 0 0 0 1 White

7 PACINO AL E 0 0 0 0 0 1 White

8 WILLIAMS ROBIN E 0 0 1 0 0 0 White

9 EASTWOOD CLINT E 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值