根据熊猫中的条件创建一个布尔列

时间:2020-02-17 10:42:22

标签: python pandas pandas-groupby

我有一个如下所示的数据框

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

2 个答案:

答案 0 :(得分:1)

使用Series.ltSeries.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)