【问题标题】:Out of bounds nanosecond timestamp超出纳秒时间戳
【发布时间】:2017-02-15 18:41:40
【问题描述】:

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

16.01.2016

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

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'

所以问题在于转换

如何改进?

【问题讨论】:

    标签: python datetime pandas


    【解决方案1】:

    根据documentationdayfirst字段默认为false:

    dayfirst : 布尔值,默认为 False

    所以它肯定认为那里的日期格式不正确,并试图将其解释为一天中的时间。

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

    我认为您可以通过给出明确的格式字符串或至少设置 dayfirst 来修复它。

    【讨论】:

      猜你喜欢
      • 2021-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-20
      • 1970-01-01
      • 2016-10-25
      • 2015-01-28
      相关资源
      最近更新 更多