在熊猫中创建基于列的额外条件

时间:2020-01-28 12:46:48

标签: pandas pandas-groupby

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

Tenancy_ID         Start_Date                  Cancelled_Date
1                  2011-10-02 07:18:16         2011-12-02 08:15:16
2                  2012-10-22 07:18:17         NaT
1                  2013-06-02 07:14:12         NaT
3                  2016-10-02 07:18:16         2017-03-02 08:18:15

从上面我想根据Cancelled_Date中取消日期的可用性来创建一个名为Cancelled_Status的新列。

预期输出:

Tenancy_ID         Start_Date                  Cancelled_Date            Cancelled_status
1                  2011-10-02 07:18:16         2011-12-02 08:15:16       Cancelled
2                  2012-10-22 07:18:17         NaT                       Not_Cancelled
1                  2013-06-02 07:14:12         NaT                       Not_Cancelled
3                  2016-10-02 07:18:16         2017-03-02 08:18:15       Cancelled

1 个答案:

答案 0 :(得分:3)

numpy.whereSeries.isna一起使用:

df['Cancelled_status'] = np.where(df['Cancelled_Date'].isna(), 'Not_Cancelled', 'Cancelled')

替代 Series.notna

df['Cancelled_status'] = np.where(df['Cancelled_Date'].notna(), 'Cancelled', 'Not_Cancelled')