通过Dataframe进行交互并检查日期

时间:2018-04-13 13:12:05

标签: python pandas datetime

假设我有以下订单交付数据框:

   Customer     Date    
1   Jay         2018-04-16
2   Anthony     2018-04-10
3   Anne        2018-05-01

我想写另一个专栏,说订单迟到了

   Customer     Date         Status
1   Jay         2018-04-16    OK
2   Anthony     2018-04-10    Late
3   Anne        2018-05-01    Ok

我已将字段Date转换为日期时间格式(datetime64 [ns])

这是我的代码:

def Status(x):
    if x < dt.datetime.today()
        return 'late'
    else:
        return 'ok'
df['Status'] = df['Date'].apply(Status)

我收到以下错误

File "<ipython-input-100-c389a139a796>", line 2
    if x < dt.datetime.today()
                              ^
SyntaxError: invalid syntax

我该怎么办? TKS

1 个答案:

答案 0 :(得分:2)

更好的是使用numpy.where

df['Status'] = np.where( df['Date']< dt.datetime.today(), 'late','ok')
print (df)
  Customer       Date Status
1      Jay 2018-04-16     ok
2  Anthony 2018-04-10   late
3     Anne 2018-05-01     ok

问题是您错过了上次:

if x < dt.datetime.today():