pandas.to_datetime给出OutOfBoundsDatetime错误

时间:2018-07-17 14:00:17

标签: pandas

我有某种格式的数据,我想读入pandas.DataFrame。 有些行给我一个错误。下面是其中一个字符串的最小示例,但是我有几个在其中不起作用的地方(奇怪的是在某些地方起作用的地方)。

确切的错误是:

  

OutOfBoundsDatetime,超出范围的纳秒级时间戳:2276-02-18   05:15:13

import pandas as pd 
pd.to_datetime('02/18/2276 5:15:13 AM', format='%m/%d/%Y %I:%M:%S %p')

我使用此网站制作了格式字符串: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Period.strftime.html

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

这是没有界限的,因为datetime dtype为datetime64[ns],其上限为2262年,请参见docs,如果将分辨率更改为较低的分辨率,则可以处理此日期时间,但是很遗憾,您无法在pandas内执行此操作。由于datetime本机存储为datetime64[ns],因此您必须在numpy内或使用正常的日期时间来完成此操作。

另一种方法是,如果年份超出范围,则将其存储在单独的列中,并将年份值设置为1900或其他指示年份超出范围的指标。

但是,这会导致性能问题,因为您丢失了一些矢量化操作