我有一个数据框,如下所示ID DURATION STATUS CONSIDER1 30 ACTIVE True2 780 CLOSED True3 745 ACTIVE False4 366 ACTIVE False5 367 ACTIVE True我想ESTIMATION_FLAG创建一个新列,当持续时间<700并且状态==活动并考虑==真时,它是真的。预期输出:ID DURATION STATUS CONSIDER ESTIMATION_FLAG1 30 ACTIVE True True2 780 CLOSED True False3 745 ACTIVE False False4 366 ACTIVE False False5 367 ACTIVE True True
2 回答

慕无忌1623718
TA贡献1744条经验 获得超4个赞
使用 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

繁星淼淼
TA贡献1775条经验 获得超11个赞
用
df["ESTIMATION_FLAG"] = (df["DURATION"] < 700) & (df["STATUS"]=="ACTIVE") & (df["CONSIDER"]==True)
添加回答
举报
0/150
提交
取消