结合numpy中的两个条件(按列)

时间:2018-08-30 07:33:44

标签: python pandas numpy

我有下表

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

现在,我想创建一个新列D,当列A大于5并且B为TRUE时将其设置为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 :(得分:2)

我认为您需要:

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')