Я хочу , щоб застосувати свою призначену для користувача функцію (вона використовує якщо-інакше сходи) в цих шести колон ( ERI_Hispanic
, ERI_AmerInd_AKNatv
, ERI_Asian
, ERI_Black_Afr.Amer
, ERI_HI_PacIsl
, ERI_White
) в кожному рядку мого dataframe.
Я спробував різні методи, ніж інші питання, але все ще не можу знайти правильну відповідь на свою проблему. Критичне значення цього полягає в тому, що якщо людину зараховують до латиноамериканського, їх не можна вважати нічим іншим. Навіть якщо вони мають "1" в іншій колоні етнічної приналежності, вони все-таки вважаються іспаномовними не двома або більше расами. Аналогічно, якщо сума всіх стовпців ERI більша за 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 для латиноамериканського є правдивим (1), працівник класифікується як "латиноамериканський"
Коментар: Якщо більше ніж 1 прапор неіспаномовних ERI є правильним, поверніть "Два чи більше"
====================== 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