Ben bu altı sütunların (için (bir if-else merdiveni kullanır) benim özel bir işlev uygulamak istediğiniz ERI_Hispanic
, ERI_AmerInd_AKNatv
, ERI_Asian
, ERI_Black_Afr.Amer
, ERI_HI_PacIsl
, ERI_White
benim dataframe her satırda).
Diğer sorulardan farklı yöntemler denedim, ancak yine de sorunum için doğru cevabı bulamıyorum. Bunun kritik parçası, eğer kişi Hispanik olarak sayılırsa, başka bir şey olarak sayılamaz. Başka bir etnik köken sütununda "1" olsa bile, iki veya daha fazla ırk değil, İspanyol olarak sayılırlar. Benzer şekilde, tüm ERI sütunlarının toplamı 1'den büyükse, bunlar iki veya daha fazla yarış olarak sayılır ve benzersiz bir etnik köken olarak sayılamaz (Hispanik hariç). Umarım bu mantıklıdır. Herhangi bir yardım büyük takdir edilecektir.
Bu neredeyse her satır boyunca bir for döngüsü yapmak gibidir ve her kayıt bir kritere uyuyorsa bir listeye eklenir ve orijinalden kaldırılır.
Aşağıdaki veri çerçevesinde SQL'de aşağıdaki özelliklere göre yeni bir sütun hesaplamam gerekiyor:
========================= KRİTERLER ======================== =======
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”
Yorum: Eğer İspanyollar için ERI Bayrağı Doğru ise (1), çalışan “Hispanik” olarak sınıflandırılır
Yorum: Birden fazla İspanyol olmayan ERI Bayrağı doğruysa, “İki veya Daha Fazla” döndürün
====================== 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