Создать новый столбец на основе значений из других столбцов / применить функцию нескольких столбцов, по строке в пандахPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Создать новый столбец на основе значений из других столбцов / применить функцию нескольких столбцов, по строке в пандах

Сообщение Anonymous »

Я хочу применить свою пользовательскую функцию (она использует лестницу if-else) к этим шести столбцам (ERI_Hispanic, ERI_AMERIND_AKNATV , ERI_ASIAN , ERI_BLACK_AFR.AMER , ERI_HI_PACISL , ERI_WHITE ) в каждом ряду моего DataFrame. Критической частью этого является то, что если человек считается латиноамериканцем, его нельзя считать что -либо еще. Даже если у них есть «1» в другой колонке этнической принадлежности, они все еще считаются латиноамериканцами, а не две или более рас. Точно так же, если сумма всех столбцов ERI превышает 1, они считаются двумя или более расы и не могут считаться уникальной этнической принадлежностью (за исключением латиноамериканского языка). < /P>
Это почти как выполнение цикла для каждой строки, и если каждая запись соответствует критерию, они добавляются в один из них, и не удаляются из -за новой. На основе следующей спецификации в 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


Подробнее здесь: https://stackoverflow.com/questions/268 ... n-of-multi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»