根据 pandas 中的条件创建布尔列

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


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创建一个新列,当持续时间<700并且状态==活动并考虑==真时,它是真的。


预期输出:


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


qq_笑_17
浏览 152回答 2
2回答

慕无忌1623718

使用&nbsp;Series.lt&nbsp;和Series.eq用于掩码,链由用于按位,优点是较少:&AND()df['ESTIMATION_FLAG'] = df['DURATION'].lt(700) & df['STATUS'].eq('ACTIVE') & df['CONSIDER']print (df)&nbsp; &nbsp;ID&nbsp; DURATION&nbsp; STATUS&nbsp; CONSIDER&nbsp; ESTIMATION_FLAG0&nbsp; &nbsp;1&nbsp; &nbsp; &nbsp; &nbsp; 30&nbsp; ACTIVE&nbsp; &nbsp; &nbsp; True&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;True1&nbsp; &nbsp;2&nbsp; &nbsp; &nbsp; &nbsp;780&nbsp; CLOSED&nbsp; &nbsp; &nbsp; True&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; False2&nbsp; &nbsp;3&nbsp; &nbsp; &nbsp; &nbsp;745&nbsp; ACTIVE&nbsp; &nbsp; &nbsp;False&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; False3&nbsp; &nbsp;4&nbsp; &nbsp; &nbsp; &nbsp;366&nbsp; ACTIVE&nbsp; &nbsp; &nbsp;False&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; False4&nbsp; &nbsp;5&nbsp; &nbsp; &nbsp; &nbsp;367&nbsp; ACTIVE&nbsp; &nbsp; &nbsp; True&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;True

繁星淼淼

用df["ESTIMATION_FLAG"]&nbsp;=&nbsp;(df["DURATION"]&nbsp;<&nbsp;700)&nbsp;&&nbsp;(df["STATUS"]=="ACTIVE")&nbsp;&&nbsp;(df["CONSIDER"]==True)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python