如何检查熊猫的过期日期?

时间:2019-01-27 12:05:52

标签: python pandas datetime dataframe

我有一个日期列,其格式为:'2687-12-31 00:00:00.000'

当我尝试在此列中检查过期日期时:

import datetime
new_df = original_df[(original_df["RecordEndDate"] > datetime.datetime.now())]

我收到此错误:

TypeError: can't compare datetime.datetime to str

,当我尝试使用以下格式转换格式时:

original_df['RecordEndDate'] = pd.to_datetime(original_df['RecordEndDate'], 
                                              format='%Y/%m/%d %H:%M:%S.%f')

我收到此错误:

ValueError: time data '2687-12-31 00:00:00.000' doesn't match format specified

有什么主意吗?

1 个答案:

答案 0 :(得分:1)

您可以创建一个lambda来捕获异常。

arr = pd.Series(['2687-12-31 00:00:00.000', '2007-12-3'])
def func(d):
    try:
        return pd.to_datetime(d) > pd.datetime.now()
    except ValueError:
        return True

arr[arr.apply(lambda v: func(v))]

0    2687-12-31 00:00:00.000
dtype: object

出现问题是因为以熊猫为单位的最长时间是直到2262年。

pd.Timestamp.max
OUT[1]: Timestamp('2262-04-11 23:47:16.854775807')