Je veux appliquer ma fonction personnalisée (il utilise un if-else échelle) à ces six colonnes ( ERI_Hispanic
, ERI_AmerInd_AKNatv
, ERI_Asian
, ERI_Black_Afr.Amer
, ERI_HI_PacIsl
, ERI_White
) dans chaque rangée de mon dataframe.
J'ai essayé différentes méthodes à partir d'autres questions, mais je n'arrive toujours pas à trouver la bonne réponse à mon problème. L'élément critique est que si la personne est considérée comme hispanique, elle ne peut pas être considérée comme autre chose. Même s'ils ont un «1» dans une autre colonne ethnique, ils sont toujours considérés comme hispaniques et non comme deux races ou plus. De même, si la somme de toutes les colonnes ERI est supérieure à 1, elles sont comptées comme deux races ou plus et ne peuvent pas être comptées comme une ethnie unique (sauf pour les Hispaniques). J'espère que cela a du sens. Toute aide sera fortement appréciée.
C'est presque comme faire une boucle for à travers chaque ligne et si chaque enregistrement répond à un critère, ils sont ajoutés à une liste et éliminés de l'original.
À partir de la trame de données ci-dessous, je dois calculer une nouvelle colonne en fonction des spécifications suivantes dans SQL:
========================= CRITÈRES ========================= =======
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”
Commentaire: Si le drapeau ERI pour Hispanique est Vrai (1), l'employé est classé comme «Hispanique»
Commentaire: Si plus d'un drapeau ERI non hispanique est vrai, retournez «Deux ou plus»
====================== DATAFRAME ============================
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 0 1 White