私は、これらの6つの列(に(それがあれば、他のはしごを使用しています)私のカスタム関数を適用したいERI_Hispanic
、ERI_AmerInd_AKNatv
、ERI_Asian
、ERI_Black_Afr.Amer
、ERI_HI_PacIsl
、ERI_White
私のデータフレームの各行の)。
私は他の質問とは異なる方法を試しましたが、それでも私の問題に対する正しい答えを見つけることができないようです。これの重要な部分は、人がヒスパニックとして数えられるならば、彼らは他のものとして数えることができないということです。別の民族の列に「1」がある場合でも、2人以上ではなくヒスパニック系としてカウントされます。同様に、すべてのERI列の合計が1より大きい場合、それらは2つ以上の人種としてカウントされ、一意の民族として数えることはできません(ヒスパニックを除く)。うまくいけば、これは理にかなっています。どんな助けでも大歓迎です。
これは、各行でforループを実行するのとほとんど同じです。各レコードが基準を満たしている場合は、1つのリストに追加され、元のリストから削除されます。
以下のデータフレームから、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)の場合、従業員は「ヒスパニック」として分類されます。
コメント:ヒスパニックでないERIフラグが複数ある場合は、「2つ以上」を返す
======================データフレーム===========================
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