python - 迭代数据框并检查日期

标签 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

我已经将日期字段转换为日期时间格式 (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

我应该做什么?

最佳答案

更好的是使用 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():

关于python - 迭代数据框并检查日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49817886/

相关文章:

python - 从十进制格式的字符串中提取基数和指数以 10 表示

python - 如何从 Python 列表中选择一组变量

Python - 删除遵循通配符模式的字符串

php - 为什么 PHP 不再解析 “BRST” 日期?

Python Pandas 系列日期时间到纪元以来的秒数

python - 按单个整数对列进行排名

python - Django 多对多字段 - 可以处理大型数据集吗?

python - 从 csv 文件行中的日期切片

python - 在 Pandas 中将列附加到 HDF 文件的框架

vb.net - 使用自定义格式化程序的 Date.Parse