[英]Combining two conditions in numpy (column-wise)
我有下表
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)
我做錯了什么?
我認為你需要:
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')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.