簡體   English   中英

在numpy中組合兩個條件(按列)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM