超出纳秒时间戳

时间:2016-10-06 21:22:16

标签: python datetime pandas

我在Googlespeedsheet中有一个变量['date_hiring'],格式如

16.01.2016

我在Python中导入它,变量有一个对象类型。我尝试转换为datetime

from datetime import datetime
data['date_hiring'] = pd.to_datetime(data['date_hiring'])

我得到了

OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 16-01-06 00:00:00

我从pandas out of bounds nanosecond timestamp after offset rollforward plus adding a month offset了解到

  

由于pandas代表以纳秒分辨率为单位的时间戳,因此   可以使用64位整数表示的时间跨度限制为   大约584年

但在Googlespeedsheet中的原始数据中我没有像'16 .01.06'那样的数据

就像'16 .06.2006'

问题在于转换

如何改进?

1 个答案:

答案 0 :(得分:4)

根据documentation dayfirst 字段默认为false:

  

dayfirst:boolean,默认为False

所以必须确定那里有一个畸形的日期,并试图把它解释为一个时间。

但即便如此,它可能并不认为16点可能是几小时或几分钟,所以它试图将其转换为秒。但是有一个额外的小数点,所以它放弃了,并说我不喜欢小数秒。 (或类似的东西。)

我认为您可以通过提供明确的格式字符串或至少设置 dayfirst 来解决此问题。