使用 pandas 和 pd.to_datetim 中的今天日期时,如果超出范围,则使用

2024-03-28 09:17:11 发布

您现在位置:Python中文网/ 问答频道 /正文

在我正在处理的数据帧中,我有一些来自遥远未来的日期输入。当我试图将该列从string转换为datetime,以便进行一些过滤时,我遇到了以下问题。你知道吗

OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 2896-09-18 00:00:00

根据Pandas文档,我使用errors = "coerce"替换为NaT

然后我尝试用今天的日期替换那些NaT值

df['date'] = pd.to_datetime(df['date'], errors = 'coerce')
df['date'] = df['date'].fillna(datetime.date.today())

但是,在那之后,列被表示为纳秒,例如1407628800000000000,而其他与未来日期没有问题的日期列则保持了以前的格式2013-03-23

因此,当我尝试过滤

df[(day >= df['date']) & (day <= df['date'])]

其中dayTimestamp('2010-01-01 00:00:00', freq='D'


Tags: of数据dfdatetimedatestringoutnat