我有一个日期列,其格式为:'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
有什么主意吗?
答案 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')