Объединение двух условий в numpy (по столбцам) - PullRequest
0 голосов
/ 30 августа 2018

У меня есть следующая таблица

   A    B     C <br/>
1  5  True    10<br/>
2  6  False   2<br/>
3  1  True    5<br/>

Теперь я хотел бы создать новый столбец D, который имеет значение TRUE, если столбец A больше 5 и B равен TRUE. Следующая команда не работает:

df['D'] = FALSE
df[['A', 'B','D']].apply(lambda x: x['D']=TRUE if x['A']>5 & x['B']==TRUE else FALSE, axis=1)

Что я сделал не так?

1 Ответ

0 голосов
/ 30 августа 2018

Я думаю, вам нужно:

import numpy as np
df['D'] = (df['A']>5) & (df['B']==True)
print(df)

Выход:

    A   B       C    D
0   5   True    10  False
1   6   False   2   False
2   1   True    5   False

Дополнительный

Если желаемый столбец не является логическим, вы можете использовать np.where:

df['D'] = np.where((df['A']>5) & (df['B']==True), 'TRUE','FALSE')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...