我有一个如下所示的数据框
ID DURATION STATUS CONSIDER
1 30 ACTIVE True
2 780 CLOSED True
3 745 ACTIVE False
4 366 ACTIVE False
5 367 ACTIVE True
我想创建一个新列ESTIMATION_FLAG,当DURATION <700且STATUS == ACTIVE和CONSIDER == True时为True。
预期输出:
ID DURATION STATUS CONSIDER ESTIMATION_FLAG
1 30 ACTIVE True True
2 780 CLOSED True False
3 745 ACTIVE False False
4 366 ACTIVE False False
5 367 ACTIVE True True
答案 0 :(得分:1)
使用Series.lt
和Series.eq
进行遮罩,按&
进行按位AND
链接,优势更少()
:
df['ESTIMATION_FLAG'] = df['DURATION'].lt(700) & df['STATUS'].eq('ACTIVE') & df['CONSIDER']
print (df)
ID DURATION STATUS CONSIDER ESTIMATION_FLAG
0 1 30 ACTIVE True True
1 2 780 CLOSED True False
2 3 745 ACTIVE False False
3 4 366 ACTIVE False False
4 5 367 ACTIVE True True
答案 1 :(得分:1)
使用
df["ESTIMATION_FLAG"] = (df["DURATION"] < 700) & (df["STATUS"]=="ACTIVE") & (df["CONSIDER"]==True)