Ich möchte meine benutzerdefinierte Funktion (die eine if-else-Leiter verwendet) auf diese sechs Spalten (ERI_Hispanic
, ERI_AmerInd_AKNatv
, ERI_Asian
, ERI_Black_Afr.Amer
, ERI_HI_PacIsl
, ERI_White
) in jeder Zeile meines Dataframes anwenden.
Ich habe verschiedene Methoden aus anderen Fragen ausprobiert, aber finde immer noch keine richtige Lösung für mein Problem. Der entscheidende Punkt dabei ist, dass wenn die Person als Hispanic gezählt wird, sie nicht als etwas anderes gezählt werden kann. Selbst wenn sie eine "1" in einer anderen Ethnizitätsspalte haben, werden sie immer noch als Hispanic und nicht als zwei oder mehr Rassen gezählt. Ebenso, wenn die Summe aller ERI-Spalten größer als 1 ist, werden sie als zwei oder mehr Rassen gezählt und können nicht als eine eindeutige Ethnizität gezählt werden (außer Hispanic).
Es ist fast so, als würde man eine for-Schleife durch jede Zeile machen und wenn jeder Datensatz ein Kriterium erfüllt, werden sie einer Liste hinzugefügt und aus dem Original entfernt.
Aus dem unten stehenden Dataframe muss ich eine neue Spalte gemäß der folgenden Spezifikation in SQL berechnen:
KRITERIEN
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”
Kommentar: Wenn das ERI-Flag für Hispanic True (1) ist, wird der Mitarbeiter als “Hispanic” eingestuft
Kommentar: Wenn mehr als 1 nicht-hispanisches ERI-Flag True ist, wird “Two or More” zurückgegeben
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