Создание переменной на основе значений двух других переменных - PullRequest
1 голос
/ 12 января 2020

У меня есть кадр данных в pandas, который включает в себя две переменные: DE C и TYPE

dec     type
 1        13
 2        2
 2        5
 2        7
 2        9
 3        5

Из этих двух переменных я хотел бы создать другие двоичные переменные на основе значений из этих двух переменных.

Я не смог найти код, чтобы написать именно то, что я хочу, но в python -Engli sh это было бы что-то вроде:

df['new_variable'] = 1 if DEC == 1 & TYPE == 3 or 2 or 1

Пожалуйста, дайте Я знаю, есть ли что-то, что я могу включить в свой вопрос, чтобы уточнить, что я ищу.

Обновление от ответов:

Проблема, с которой я сталкиваюсь, возникает из-за того, что для каждой переменной мне нужно запустить две строки кода (ниже), и когда я запускаю вторую строку, она выходит за рамки кодирования в первой строке. Как мне запустить обе строки вместе (т.е. без второй строки, выходящей за пределы первой строки)?

harrington_citations['gov_winner'] =  np.where((harrington_citations['dec'] == 1) & harrington_citations['type'].isin([1,2,3,4,22]) , 1, 0)

harrington_citations['gov_winner'] = np.where((harrington_citations['dec'] == 2) & harrington_citations['type'].isin([1,5,9,13,18]), 1, 0)

Ответы [ 2 ]

1 голос
/ 12 января 2020

Похоже, вам нужно .isin для второго условия и возврата 1/0:

df['new_variable'] = (df['dec'].eq(1) & df['type'].isin([3,2,1])).view('i1')

РЕДАКТИРОВАТЬ на комментарии, вы должны создать 2 условия с | условием:

c1 = (harrington_citations['dec'] == 1) & harrington_citations['type'].isin([1,2,3,4,22])
c2 = (harrington_citations['dec'] == 2) & harrington_citations['type'].isin([1,5,9,13,18])
harrington_citations['gov_winner'] = (c1|c2).view('i1')
0 голосов
/ 12 января 2020

Замените np.nan на любое значение, которое вам подходит:

df['new_variable'] = np.where((df['dec'] == 1) & df['type'].isin([1,2,3]), 1, np.nan)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...